Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 46 di 46

Discussione: [php] Creare pagine da codice php

  1. #31
    Ospite Guest

    Predefinito

    Fai così:

    Codice della pagina che elenca i files:

    Codice PHP:
    <?php
    $cartella
    = opendir('.');
    while (
    $file = readdir($cartella)) {
    $file_array[] = $file;
    }
    foreach (
    $file_array as $file) {
    if (
    $file == ".." || $file == ".") {
    continue;
    }
    echo
    "<a href='cancella.php?file=$file'>$file</a><br>";
    }
    ?>
    Poi crea un'altra pagina chiamata "cancella.php" inserendo come codice php:
    Codice PHP:
    <?
    unlink
    ($file);
    ?>
    Ciao!

  2. #32
    Guest

    Predefinito

    @ probid: ma io devo far cancellare solo i file della cartella documents ossia la cartella dove vanno salvate le pagine... come faccio?

    EDIT: inoltre i file devono essere visualizzati uno per uno...
    Ultima modifica di TurkoSoft : 12-04-2006 alle ore 20.55.13

  3. #33
    Ospite Guest

    Predefinito

    Devi cambiare il valore della variabile "$cartella".
    Codice PHP:
    $cartella = opendir('/documents');
    Per la visualizzazione,i files vengono elencati,e successivamente è possibile eliminarli semplicemente cliccando su di essi.

  4. #34
    Guest

    Predefinito

    i file non vengono messi in ordine...cioè io li vorrei uno sotto l'altro e magari così:
    Nome file: cancella
    Nome file: cancella
    Codice PHP:
    <?php
    $cartella
    = opendir('/documents');
    while (
    $file = readdir($cartella)) {
    $file_array[] = $file;
    }
    foreach (
    $file_array as $file) {
    if (
    $file == ".." || $file == ".") {
    continue;
    }
    echo
    "<a href='cancella.php?file=$file'>$file</a>";
    }
    ?>
    EDIT: risolto il problema della cartella... @ probid: ti eri dimenticato il . prima di /
    Ultima modifica di TurkoSoft : 12-04-2006 alle ore 21.23.17

  5. #35
    Guest

    Predefinito

    Prova così:
    Codice PHP:
    <?php
    $cartella
    = opendir('/documents');
    while (
    $file = readdir($cartella)) {
    $file_array[] = $file;
    }
    echo(
    "<ul>");
    foreach (
    $file_array as $file) {
    if (
    $file == ".." || $file == ".") {
    continue;
    }
    echo
    "<li><a href='cancella.php?file=$file'>$file</a>;</li>";
    }
    echo(
    "</ul>");
    ?>
    Adesso dovrebbero essere in un elenco puntato.

    EDIT: @probid: il file 'cancella.php' deve essere così:
    Codice PHP:
    <?php
    unlink
    ($_GET[file]);
    ?>
    Altrimenti da dove se la prende la variabile $file ?
    Ultima modifica di tryphpnuke : 12-04-2006 alle ore 21.32.24

  6. #36
    Guest

    Predefinito

    io avevo fatto così:
    Codice PHP:
    <?php
    $cartella
    = opendir('./documents');
    while (
    $file = readdir($cartella)) {
    $file_array[] = $file;
    }
    foreach (
    $file_array as $file) {
    if (
    $file == ".." || $file == ".") {
    continue;
    }
    echo
    " $file : <a href='cancella.php?file=$file'>cancella</a><br>";
    }
    ?>
    però il problema è che i file non me li cancella...mi sà che c'è qualcosa di errato in cancella.php

  7. #37
    Guest

    Predefinito

    Oh... che stupido... Ecco qua: non era specificata la cartella!
    Codice PHP:
    <?php
    unlink
    ("./documents/".$_GET[file]);
    ?>
    EDIT: Miglioriamo un po'...
    Codice PHP:
    <?php
    unlink
    ("./documents/".$_GET[file]) or die("Errore durante l'eliminazione del file $_GET[file].");
    echo(
    "File $_GET[file] eliminato correttamente!");
    ?>
    Ultima modifica di tryphpnuke : 12-04-2006 alle ore 21.35.01

  8. #38
    Guest

    Predefinito

    @ tryphpnuke: tanto per complicarti un pò la vita
    ...e se io volessi far chiedere una conferma prima di eliminare? Magari facendo apparire subito a video 1 messaggio con su scritto "Vuoi davvero elimnare questo file?" e poi i bottoni SI, NO... come dovrei fare?

  9. #39
    Guest

    Predefinito

    Nel file 'cancella.php' modifichi un po'...
    Codice PHP:
    <?php
    if (!$_GET[confirm]) {
    // Non c'è stata la conferma: la chiedo:
    echo("<center>Vuoi veramente eliminare $_GET[file]?</center>");
    echo(
    "<center><a href=\"cancella.php?file=".$_GET[file]."&confirm=yes\">Sì</a> | <a href=\"listadeifiles.php\">No</a></center>");
    } elseif (
    $_GET[confirm] == "yes") {
    // C'è già stata la conferma: elimino il file:
    unlink("./documents/".$_GET[file]) or die("<center>Errore durante l'eliminazione del file $_GET[file].</center>");
    echo(
    "<center>File $_GET[file] eliminato correttamente!</center>");
    } else {
    // E' successa una qualche magagna nel server, mostro un errore generico:
    echo("<center>Errore generale! Controllare le impostazioni del server!</center>");
    }
    ?>
    Per riepilogare il tutto ho creato uno script funzionante con le stesse cose che stiamo dicendo in questo topic: http://tryphpnuke.altervista.org/test/editor-online/. (magari non "bombardatemi" lo spazio di file inutili, ok?! )
    Ultima modifica di tryphpnuke : 12-04-2006 alle ore 21.58.21

  10. #40
    Guest

    Predefinito

    ho provato il tuo editor e mi da questo errore:
    Parse error: syntax error, unexpected $end in /membri/tryphpnuke/test/editor-online/cancella.php on line 13
    vorrei anche io, far vedere il file e farlo eliminare nella stessa pagina...come hai fatto? (forse ho capito )
    Ultima modifica di TurkoSoft : 12-04-2006 alle ore 21.57.47

  11. #41
    Guest

    Predefinito

    Avevo dimenticato la graffa finale!

    EDIT: Per evitare i file doppi possiamo aggiungere questa stringa nel file 'creafile.php':
    Codice PHP:
    <?php
    $lunghezza_codice
    = 4;
    for (
    $k=1;$k<=$lunghezza_codice;$k++) {
    $codice .= rand(0,9);
    }
    // E poi modificare così la riga in cui viene salvato il file:
    @fopen("./documents/$codice-$_POST[filename]$_POST[ext]","x+") or die("File già esistente!");
    ?>
    Ultima modifica di tryphpnuke : 12-04-2006 alle ore 22.22.23

  12. #42
    Guest

    Predefinito

    funziona perfettamente!
    Grazie 100000 tryphpnuke...Cmq io come stensioni non ho messo solo .php .htm e .html ma mooooolte altre!
    Se avrò bisogno posto qui, oppure ti contatto!

    EDIT:
    Citazione Originalmente inviato da tryphphnuke
    Per evitare i file doppi possiamo aggiungere questa stringa nel file 'creafile.php'
    che so sti file doppi? (spiegati meglio) io la mia pagina di "esecuzione" l'ho chiamata esegui.php
    Ultima modifica di TurkoSoft : 12-04-2006 alle ore 22.25.38

  13. #43
    Guest

    Predefinito

    Allora:
    1) la pagina 'creafile.php' è quella che salva il file, quella che per te si chiama 'esegui.php'. Il beneficio di quella stringa è che rende praticamente impossibile la visualizzazione del messaggio di errore perché aggiunge una stringa random all'inizio del nome del file, ma si può anche omettere (togliere);
    2) la pagina 'listadeifiles.php' è la pagina che ti da la lista dei file creati (!!!). vatti a cercare il link nel codice php della pagina 'cancella.php' e modifica 'listadeifiles.php' con il nome reale della tua pagina (per me è, ad esempio, 'listfiles.php').

    Capito? Se c'è qualcosa di poco o per niente chiaro, AV ha 500.000 iscritti disposti a darti una mano, e fra questi anch'io.

  14. #44
    Guest

    Predefinito

    risolto tutto...adesso è venuto molto bello!
    Peccato che adesso non abbia tempo per mettere a posto il form ecc... Cmq funziona tutto.
    ...mi manca solo un piccolo form per far accedere un user all'area amministrazione (anche solo un campo password), me la daresti una mano anche qui please? (grazie)

  15. #45
    Guest

    Predefinito

    Temo che tu debba fare qualcosa con i cookie, ma non ti so proprio aiutare... :(
    Prova a chiedere a qualcuno, magari in un topic apposta (giusto per non andare troppo OT, che già ci siamo andati abbastanza oggi! )...

  16. #46
    Guest

    Predefinito

    visto che il problemaè risolto, chiudo!

    @turko: per il sistema di login all'area amministrativa apri un altro thread, qui sei OT.

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •