Bonjour,
voici un code pour supprimer un dossier. J'affiche la liste des dossiers ; l'utilisateur sélectionne celui à supprimer et je le supprime. Par contre si après j'affiche de nouveau la liste des dossiers, bien que réellement supprimé, le dossier apparaît encore. Si j'en supprime un nouveau puis réaffiche encore la liste, cette fois, il n'y est plus. Comment ne pas avoir ce coup de retard ?
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php function rrmdir($dir) { if (is_dir($dir)) { // si le paramètre est un dossier $objects = scandir($dir); // on scan le dossier pour récupérer ses objets foreach ($objects as $object) { // pour chaque objet if ($object != "." && $object != "..") { // si l'objet n'est pas . ou .. if (filetype($dir."/".$object) == "dir") rmdir($dir."/".$object);else unlink($dir."/".$object); // on supprime l'objet } } reset($objects); // on remet à 0 les objets rmdir($dir); // on supprime le dossier } } ?> <div class="divTexte" id="effacer"> <form action="#" method="POST"> <?php $cur_dos= getcwd(); //rep. courant // si le dossier pointe existe if (is_dir($cur_dos)) { // si il contient quelque chose if ($dh = opendir($cur_dos)) { ?> <select name="list-dir"> <?php // boucler tant que quelque chose est trouve while (($file = readdir($dh)) !== false) { if (($file!='.')&&($file!='..')&&(is_dir($file))) { ?> <option value="<?php echo $file; ?>"><?php echo $file; ?></option> <?php } } ?></select><?php // on ferme la connection closedir($dh); } } ?> <input type="submit" name="submit2" value="Effacer"/> </form> </div> <?php if (isset($_POST["submit2"])) { if (!(empty($_POST['list-dir']))) rrmdir($_POST['list-dir']); else $error= "pas d'album à effacer"; } ?>
Partager