Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    192

    Del di un file tramite form

    Salve a tutti.
    Prima di postare ho fatto un cerca in questo form ma non ho trvato nulla che potesse aiutarmi.

    Visualizzo usando una "select" (classico menu a tendina) dei file in una cartella su server (di cui faccio l'upload)

    <form method="get" action="delete.php">
    <center>
    <h3>Elenco file: </h3>
    <select name="lista" Multplipe>
    <?php
    #apriamo la cartella il punto indica che è la cartella dove ci troviamo
    $cartella = opendir('./upload');

    #creiamo un ciclo che legga i contenuti e li metta nell'array
    while ($file = readdir($cartella)) {
    $file_array[] = $file;
    }

    #facciamo un ciclo foreach per prendere gli elementi
    foreach ($file_array as $valore) {

    #tutti tranne quelli che iniziano per "." o per ".."
    if ( $valore == ".." || $valore == ".") {
    continue;
    }

    #stampa in una select tutti i valori della cartella
    echo "<option name=\"$filecanc\">$valore ";
    echo "</option>";
    }

    ?>
    <input type="submit" value="cancella">
    </select>
    </center>
    </form>

    Ora tramite il form creo un pulsante "cancella" reindirizzato al file delete.php che dovrebbe cancellarmi il file visualizzato nel menu a tendina

    $file="$filecanc";
    if (file_exists($file) )
    {
    if (unlink($file))
    echo "il file è stato cancellato";
    else
    echo "non è stato cancellato";
    }
    else
    echo "il file non esiste";
    ?>

    Pero non mi funziona...evidentemente non riesco a passare il parametro...
    Potreste gentilmente avere pietà e spiegarmi dove è l'errore?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    #stampa in una select tutti i valori della cartella
    echo "<option name=\"$filecanc\">$valore ";
    echo "</option>";

    prova a mettere
    <select name"elencofile">
    <option value=\"$filecanc1\">$filecanc1</otpion>
    <option value=\"$filecanc2\">$filecanc2</otpion>
    ecc.
    </select>

    e poi recuperi il file da cancellare

    $cancella = $_POST['elencofile']; // cioè il nome della select

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    192
    Mi dice che il file non esiste... (quindi non gli passa il file selezionato nel menu a tendina!)
    Ho messo come mi hai consigliato:
    <form method="post" action="delete.php">
    <select name="elencofile" Multplipe>

    <?php
    $cartella = opendir('./upload');

    #creiamo un ciclo che legga i contenuti e li metta nell'array
    while ($file = readdir($cartella)) {
    $file_array[] = $file;
    }

    foreach ($file_array as $valore) {

    if ( $valore == ".." || $valore == ".") {
    continue;
    }

    echo "<option value=\"$filecanc\">$valore ";
    echo "</option>";

    }

    ?>
    <input type="submit" value="cancella">
    </select>
    </form>

    E nel file delete.php ho cambiato:

    $file=$_post['elencofile'];
    if (file_exists($file))
    {
    if (unlink($file))
    echo "il file è stato cancellato";
    else
    echo "non è stato cancellato";
    }
    else
    echo "il file non esiste";
    ?>
    Nada

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    La select va chiusa prima di chiudere il form.

    Multplipe non esiste. Prova con una select normale senza scelte multiple.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    192
    La select è chiusa prima del form ...

    Ho levato il multiplipe ma è =
    :master: :master: :master: :master:

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Nosf1
    La select è chiusa prima del form ...
    Scusa, intendevo prima del submit.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    192
    Modificato... ma non va lo stesso!
    Sempre l'errore: il file non esiste

  8. #8
    Scusa tu assegni alle option della select, come valore, $filecanc

    echo "<option name=\"$filecanc\">$valore ";

    Ma dove lo definisci, $filecanc?
    anija . è solo un blog
    www.anija.it

    «i'm a fountain of blood · in the shape of a girl»

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Scusa, io filecanc te l'avevo messo come esempio per la sintassi, se tu nel foreach usi $valore metti quello al posto di filecanc. Poi quando hai problemi fai un pò di debug, dando magari degli echo o dei print_r per vedere alcuni punti critici.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    192
    Sisi, infatti uso $valore ho sbagliato a copiare/incollare

    while ($file = readdir($cartella)) {
    $file_array[] = $file;
    }
    foreach ($file_array as $valore) {

    echo "<option value=\"$valore\">$valore ";
    echo "</option>";
    }


    Il fatto è che la lista dei file (nella cartella) mi si visualizzano correttamente nel menu a tendina! Pero selezionandone 1 e cliccando cancella...nun funge..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.