eliminazione cartella

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
sera per testare il sito uso l'ultima versione di xampp ho ritrovato un codice per eliminare una sottocartella su un sito che ho creato tempo indietro funziona alla grande lo stesso codice l'ho inserito nel nuovo sito che sto creando non funziona mi da errore 125 e 128 non riesco a capire il perchè posto il code
Codice:
 <?Php
                    $dir='documenti'; // directory name
                    $ar=scandir($dir);
                    $box=$_POST['box'];  // Receive the file list from form

                    // Looping through the list of selected files ///
                    while (list ($key,$val) = @each ($box)) {
                    $path=$dir    ."/".$val;
                    if(unlink($path)) echo "Deleted file ";
                    echo "$val,";
                    }
                    echo "<hr>";
                    $ar=scandir($dir);// Once again directory content is scanned to exclude deleted files.
                    /// displaying the file names with checkbox and form ////
                    echo "<form method=post name='username' action=''>";
                    while (list ($key, $val) = each ($ar)) {
                    if(strlen($val)>3){
                    echo "<input type=checkbox name=box[] value='$val'>$val<br>";
                    }
                    }
                    echo "<input type=submit value='Delete'></form>";
                    ?>
 

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
quale riga/righe di codice danno errore ?
puoi postare la descrizione completa degli errori ?
ciao il code è da riscrivere perchè non legge le sottocartella es: documenti/ dentro la cartella documenti ci sono altre cartelle con i nomi utenti quando un utente si registra io creo la sottocartella con il nome utente il sito che sto facendo è per un amministratore di codomini ma mi manca la funzione per eliminare la sottocartella e il contenuto in questo caso pdf e doc
 

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it

Allegati

  • Screenshot (29).png
    Screenshot (29).png
    121,9 KB · Visite: 42
  • Screenshot (30).png
    Screenshot (30).png
    168,8 KB · Visite: 46

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
i messaggi di errore sono chiari,

alla riga 122 viene usato il campo "box" dal form, ma non é stato definito

la funzione each é deprecata ed eliminata dalle versioni php successive alla 7.2
 
  • Like
Reactions: Imperor

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
i messaggi di errore sono chiari,

alla riga 122 viene usato il campo "box" dal form, ma non é stato definito

la funzione each é deprecata ed eliminata dalle versioni php successive alla 7.2
ciao e buongiorno a ecco il perchè non sono un programmatore ma autodidatta :) si può risolvere? stavo provando a scrivere un nuovo codice ma con il checkbox meglio con il select dove selezioni la sottocartella da eliminare questo è ciò che sto a scrivere è da completare :) uso xampp l'ultima versione 8.0
Codice:
<?php

                $path = "documenti";
                $dh = dir($path);
                while( ($file=$dh->read()) !== false) {
                    if( $file=="." || $file=="..")continue;
                    $realfile = $path . "/" . $file;
                    echo "<hr>";
                    echo (is_dir($realfile))?  "<tr><td>$file</a></td>":"<tr><td>$file</a></td>";
                    echo "<form method=post name='f1' action=''>";
                    echo "<td><input type='checkbox' name='delete[]'/></td></tr>";
                    echo "<input type=submit value='Delete'></form>";
                }
                ?>
 

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
@marino51 ciao ho trovato in rete dei codici seleziona sottocartella e elimina la sottocartella compreso il contenuto ma non riesco a farlo funzionare posto il code
Codice:
<input type="hidden" name="username" value="username" /><input type="hidden" name="Selection"  id="Selection" value="-1"><div>Seleziona la cartella da eliminare.</div>
                <select size="1" name="username" id="username">
                <?php
                   $directory = $directory = 'documenti/' . $username;
                   $filesContents = Array();
                   $files = scandir( $directory ) ;

                   foreach( $files as $file )
                  {
                   if ( ! is_dir( $file ) )
                  {
                   $filesContents[$file] = file_get_contents($directory , $file);
                  echo "<option>" . $file . "</option>";
                  }
                   }
                   ?>
                   </select>
                   <br>
                   <br>
                   <input type="submit" value="Elimina" name="file">
                   <hr>
                  
                    <?php
                    //  If a session already exists, this doesn't have any effect.

                          $directory = $directory = 'documenti' . $username;
                          $file_to_delete = $_POST['$file'];
                            if ( unlink ($directory.'/'.$file_to_delete) ) {
                          echo $file_to_delete . " deleted.";
                        } else {
                            echo "Error.";
                        }
                    
                    ?>
 

Allegati

  • Screenshot (36).png
    Screenshot (36).png
    128,6 KB · Visite: 46

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
come vedi anche tu, sono presenti errori che impediscono il funzionamento
evidentemente hai apportato modifiche disastrose al codice
 
  • Like
Reactions: Imperor

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
ciao e grazie non sono un programmatore riuscivo solo a malapena a programmare il mirc e il vincula per le ex chat di msn :) ma se devo scrivere un code :( ancora grazie x l'aiuto :)
ciao usando l'intelligenza artificiale mi ha generato i codici per eliminare la sottocartella :) ma non so come eseguire il clik in modo da eliminare la sottocartella selezionata usando delete_directory
Codice:
<input type="hidden" name="username" value="username" /><input type="hidden" name="username"  id="username" value="-1"><div>Seleziona la cartella da eliminare.</div>
                <select size="1" name="username" id="username">
                <?php
                   $directory = 'documenti/' . $username;
                   $filesContents = Array();
                   $files = scandir( $directory ) ;

                   foreach( $files as $file )
                  {
                   if ( ! is_dir( $file ) )
                  {
                   $filesContents[$file] = file_get_contents($directory , $file);
                  echo "<option>" . $file . "</option>";
                  }
                   }
                   ?>
                   </select>
                   <br>
                   <br>
                 
<?php
                   
                   function delete_directory($directory) {
                   if (is_dir($directory))
                      $dir_handle = opendir($directory);
                   if (!$dir_handle)
                      return false;
                   while($username = readdir($dir_handle)) {
                      if ($username != "." && $username != "..") {
                         if (!is_dir($directory."/".$username))
                            unlink($directory."/".$username);
                         else
                            delete_directory($directory.'documenti/'.$username);
                      }
                   }
                   closedir($dir_handle);
                   rmdir($directory);
                   return true;
                }
                   ?>
 
Ultima modifica:

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
@marino51 ciao ho cambiato tutto manca solo la funzione per il submit
Codice:
<?php
                    $username = glob("documenti/*");
                    ?>

                    <form method="post">
                      <label for="select-cartella">Scegli la cartella da eliminare</label>
                      <select name="username" id="username">
                    <?php foreach($username as $username): ?>
                        <option value="<?= htmlspecialchars(basename($username)) ?>"><?= htmlspecialchars(basename($username)) ?></option>
                    <?php endforeach ?>
                      </select>
                     <input type="submit" value="Elimina" name="submit">
                    </form>
                   <?php
                  
                  
                  
                    function removeDir($dir) {
                    if (is_dir($dir)) {
                        $username = scandir($dir);
                        foreach ($username as $username) {
                            if ($username !== '.' && $username !== '..') {
                                if (filetype($dir.'/'.$username) === "dir") {
                                    removeDir($dir . '/' . $username);
                                }
                                else {
                                    unlink($dir.'documenti/'.$username);
                                }
                            }
                        }
                        reset($username);
                        unlink($dir);
                    }
                }
                    ?>
 

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
@marino51 buongiorno forse ci sono riuscito ma anche se dice cartella eliminata non elimina nulla :(
Codice:
<h6>elimina cartella utente</h6>
                <?php
                    $username = glob("documenti/*");
                    ?>
                  <?php
                    function remove_directory($directory) {
                        if (!is_dir($directory)) return;

                        $contents = scandir($directory);
                        unset($contents[0], $contents[1]);

                        foreach($contents as $object) {
                            $current_object = $directory.'/'.$object;
                            if (filetype($current_object) === 'username') {
                                remove_directory($current_object);
                            } else {
                                unlink($current_object);   
                            }
                        }

                        rmdir($directory);
                    }

                    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['username'])) {
                        $username = basename($_POST['username']);
                        if ($username[0] != '.') remove_directory("documenti/".$username);
                    }

                    ?>
                    <form method="post">
                      <label for="select-cartella">Scegli la cartella da eliminare</label>
                      <select name="username" id="username">
                    <?php foreach($username as $username): ?>
                        <option value="<?= htmlspecialchars(basename($username)) ?>"><?= htmlspecialchars(basename($username)) ?></option>
                    <?php endforeach ?>
                      </select>
                     <input type="submit" value="Elimina" name="username">
                    </form>
 

Imperor

Utente Attivo
25 Nov 2010
90
2
8
Roma
www.fcfclean.it
risolto :) ora elimina sia la sottocartella e contenuto :)
Codice:
<?php
                    function remove_directory($directory) {
                        if (!is_dir($directory)) return;

                        $contents = scandir($directory);
                        unset($contents[0], $contents[1]);

                        foreach($contents as $object) {
                            $current_object = $directory.'/'.$object;
                            if (filetype($current_object) === 'username') {
                                remove_directory($current_object);
                            } else {
                                unlink($current_object);   
                            }
                        }

                        rmdir($directory);
                    }

                    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['username'])) {
                        $username = basename($_POST['username']);
                        if ($username[0] != '.') remove_directory("documenti/$username");
                    }

                    ?>
                    <form action="" method="post">
                    <input type="text" name="username"/>
                    <input type="submit" name="delete"/>
                    </form>
 
Discussioni simili
Autore Titolo Forum Risposte Data
I eliminazione cartella e contenuto PHP 1
M [PHP] Eliminazione utente e tutti i suoi file caricati in una cartella PHP 8
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
H Eliminazione script. Photoshop 0
I eliminazione file pdf PHP 0
A JAVASCRIPT ELIMINAZIONE DIV DINAMICO SU SITO Offerte e Richieste di Lavoro e/o Collaborazione 3
M "Principiante photoshop" Eliminazione di una parte di una foto e riempimento "a specchio" Photoshop 4
fabryx [PHP]RISOLTO: eliminazione riga con singolo valore duplicato in array PHP 19
M promoted post modifiche ed eliminazione Social Media Marketing 0
C inserimento o eliminazione record mysql senza cambio pagina Ajax 9
JackIlPazzo Query di eliminazione non funzionante PHP 4
A Chiusura ed eliminazione di questo account Supporto Mr.Webmaster 0
L Eliminazione titolo sito sulla homepage Joomla 1
W Problema eliminazione ultimo record da ultima pagina di crud con paginazione PHP 2
B aiuto per Form di eliminazione record PHP 21
J Aiuto per una query di eliminazione PHP 5
R Eliminazione tag da menu a tendina creato con dati prelevati da tabella Mysql PHP 3
M Eliminazione inserzione immagini in testata WordPress 2
G access 2003: query di eliminazione o aggiornamento? MS Access 2
N Eliminazione prodotto carrello PHP 17
R [chiusa]Realizzazione webmail con eliminazione automatica dei messaggi vecchi Offerte e Richieste di Lavoro e/o Collaborazione 5
M eliminazione automatica dati dal database dopo un certo periodo di tempo PHP 10
A eliminazione scrollbar e ottimizzazione pagina web Webdesign e Grafica 5
T query di eliminazione PHP 17
J problema eliminazione record MS Access 1
M eliminazione file PHP 6
G Thunderbird ed eliminazione di tutti i destinatari Windows e Software 0
U Problema con eliminazione righe dalla tabella del database PHP 1
V eliminazione di un topic Discussioni Varie 1
reg problema eliminazione new line (almeno credo) dal DB PHP 1
N eliminazione righe - file di testo PHP 0
A Query di aggiornamento ed eliminazione in Access Database 1
M php, mysql ed eliminazione record...disperazione totale! PHP 0
jan267 Eliminazione dei cookies da ASP Classic ASP 2
I cartella privata utente PHP 4
I cartella sottocartella apri o scarica file pdf PHP 1
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
D PHP leggere cartella di Windows PHP 1
W visualizzare solo file html e sottocartelle di una cartella PHP 1
W Elenco dei link del file presenti in una cartella PHP 2
Cosina Upload multiplo con archiviazione in cartella PHP 16
Cosina Mostrare immagini da una cartella, ma solo un numero definito PHP 12
W Creazione Cartella Classic ASP 2
R Caricamento immagine su cartella remota + mysql PHP 3
Alex_70 Delete foto in database e cartella PHP 72
H Cartella Programdata scomparsa. Windows e Software 0
L Come spostare cartella immagini/video PHP 1
L Estrarre da Cartella una determinata 'via' PHP 15
G Condividere 1 cartella in rete due computer windows 10 Reti LAN e Wireless 0
S Cartella condivisa Reti LAN e Wireless 0

Discussioni simili