- Home
- Categorie
- Coding e Sistemistica
- PHP
- eliminazione sottocartella e contenuto
-
eliminazione sottocartella e contenuto
salve sto provando a selezionare e eliminare una sottocartella con il contenuto file pdf doc ma non funziona dove sbaglio?
<h6>elimina cartella utente</h6> <?php $username = glob("documenti/*"); ?> <?php function remove_directory($username) { if (!is_dir($username)) return; $username = scandir($username); unset($username[0], $username[1]); foreach($username as $object) { $current_username = $username.'/'.$username; if (filetype($current_username) === 'username') { remove_directory($current_username); } else { unlink($current_username); } } rmdir($username); } 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="hidden" value="<?= htmlspecialchars(basename($username)) ?>"> <input type="submit" value="Elimina" name="username"> </form>
-
risolto ora elimina sia la sottocartella e contenuto
<?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>
1 Risposta -
@imperor attenzione... ti consiglierei di aumentare la sicurezza del tuo parametro in ingresso, altrimenti un malintenzionato potrebbe cancellare l'intero file system.