Script PHP problème suppresion repertoire

Résolu
TheBleedz -  
TheBleedz Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai créer un petit script avec un exercice dans un livre qui expliqué comment faire mais voila le livre est accès vieux et dans un salle état enfin bref. J'ai réussis a créer une fonction d'ajout de répertoire mais j'arrive pas à créer une fonction suppression répertoire.
Ça bloque quelque part mais je sais pas =/ J'espère qu'un pro du PHP va passé par ici ^^

Voici le code de ma page del_dir.php :
function clr_dir($dir) {
         if(@ ! $opendir = opendir($dir)) {
              return false;
         }
         while(false !== ($readdir = readdir($opendir))) {
                     if($readdir !== '..' && $readdir !== '.') {
                                 $readdir = trim($readdir);
                                 if(is_dir($dir.'/'.$readdir)) {
                                          if(@!unlink($dir.'/'.$readdir)) {
                                          return false;
                                          }
                                 }
                                 elseif(is_dir($dir.'/'.$readdir)) {
                                 // on appel la fonction elle meme pour supprimer les sous répertoires
                                    if(!clr_dir($dir.'/'.$readdir)) {
                                         return false;
                                    }
                                 }
                     }
         }
         closedir($opendir);
         if(@ ! rmdir($dir)) {
              return false;
         }
         return true;
}

if (isset($_GET['supprimer_categorie'])){
   // on ecchape tous les caractère spéciaux
   $categorie = htmlentities($_GET['supprimer_categorie'],ENT_QUOTES);

   // on va vérifier que la catégorie existe
   if (is_dir("photo/".$categorie."")){

      // puis on supprime les 2 dossiers, et leur contenu

      clr_dir("photo/".$categorie."");
      // on fait une vérification sur la création pour le retour à l'utilisateur
      if (is_dir("photo/".$categorie."") && is_dir("photo/".$categorie."/mini")){
         echo "<p>Une erreur est survenu durant la suppression de votre catégorie </br> Veuillez contacter votre administrateur</p>";

      }
      else{
          echo "<p>La catégorie : ".$categorie.", a bien été supprimée</p>";
      }
   }
   else{
       echo "<p>Votre catégorie : ".$categorie.", a déja été effacée :)</p>";
   }
}
?>


J'ai essayé de faire claire pour un maximum de visibilité et qui faut pas continué à chercher.
Merci d'avance et bonne journée à vous.
A voir également:

5 réponses

le père
 
Bonjour

Je n'ai pas testé, mais à la lecture de ton script, il me semble que le test de la condition fichier / répertoire n'est pas correct, tu testes deux fois répertoire :
il faudrait
                               if(is_file($dir.'/'.$readdir)) {
à la place de
                               if(is_dir($dir.'/'.$readdir)) {
0
TheBleedz Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de votre réponse.

Oui vous avez raison j'ai fait une erreur accès grave. Merci de me le faire signaler. Mais malheureusement ça ne marche toujours pas.

Merci.
0
le père
 
Y a-t-il un message d'erreur ?
Y a-t-il un effacement au moins partiel ?
Peut-être un problème de droits ? Pour le vérifier, essayer sans le @ dans if(@!unlink($dir.'/'.$readdir)) {
0
TheBleedz Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Y a-t-il un message d'erreur ?

Oui il me met :
Une erreur est survenu durant la suppression de votre catégorie
Veuillez contacter votre administrateur

"; } else{ echo "

La catégorie : ".$categorie.", a bien été supprimée
"; } } else{ echo "

Votre catégorie : ".$categorie.", a déja été effacée :)
"; } } ?> 


Mais logique vus que mon dossier existe toujours.

Y a-t-il un effacement au moins partiel ?

Bah non je vais dans le dossier photo la catégorie et toujours la et les éléments dedans aussi.

Peut-être un problème de droits ?


Fa na pas changer toujours la même erreur.

Merci beaucoup de te casser la tête pour m'aider. J'essaye de mon coté mais rien ne bouge.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheBleedz Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Je trouve vraiment pas...
0