Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3357 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  suppr des fic ds un rép qui est ds un rep... [ - Job's Done - ]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suppr des fic ds un rép qui est ds un rep... [ - Job's Done - ]

n°320370
xkamui
Their Destiny Was Foreordained
Posté le 28-02-2003 à 16:34:38  profilanswer
 

voilà, j'ai des fichiers qui se trouvent dans ce répertoire :  
http://www.monserver.com/img/photos/nom_user/ref_moto
 
tout mes fichiers sont 'includé' dans mon fichier index.php, donc le fichier qui fait mon unlink aussi.
 
je voudrais, depuis mon fichier php, qui se trouve à la racine, supprimer tout les fichier du répertoire ref_moto et ce répertoire ensuite...
 
voilà ce que je fait :  
 

Code :
  1. $dir="img/photos/".$user."/".$ref."";
  2. if (@opendir("$dir" )!=FALSE)
  3.   {
  4.   while (false !== ($file = readdir($dir)))
  5.    {
  6.    if ($file!="." || $file!=".." ){@unlink ("$file" );}
  7.    }
  8.   @closeir ("$dir" );
  9.   @rmdir ("$dir" ):
  10.   }


 
là il me fait une boucle infinie en écrivant :  
 

Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp\www\[annonce]\ann\suppr_ann.txt on line 6
> line 6 :   while (false !== ($file = readdir($dir)))
 
Warning: unlink() failed (Permission denied) in c:\program files\easyphp\www\[annonce]\ann\suppr_ann.txt on line 8
> line 8 :    if ($file!="." || $file!=".." ){unlink ("$file" );}


 
nota : j'ai essayé en mettant 'while (false !== ($file = readdir("$dir")))' mais sans améliorations...
 
vous pouvez m'aider parce que là, je nage grave grave grave... [:toukc]


Message édité par xkamui le 02-03-2003 à 22:41:54
mood
Publicité
Posté le 28-02-2003 à 16:34:38  profilanswer
 

n°320376
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-02-2003 à 16:42:10  profilanswer
 

xkamui a écrit :


  while (false != ($file = readdir($dir)))


 
Non ?


Message édité par Taiche le 28-02-2003 à 16:42:35

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°320380
xkamui
Their Destiny Was Foreordained
Posté le 28-02-2003 à 16:45:43  profilanswer
 

source : http://www.php.net/manual/en/function.readdir.php
 

Code :
  1. /* This is the correct way to loop over the directory. */
  2.     while (false !== ($file = readdir($handle))) {
  3.         echo "$file\n";
  4.     }
  5. /* This is the WRONG way to loop over the directory. */
  6.     while ($file = readdir($handle)) {
  7.         echo "$file\n";
  8.     }

n°320385
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-02-2003 à 16:49:18  profilanswer
 

Bon ba non, alors.
Cela dit, à ta place, j'ferais plusieurs trucs :
* vire les @ devant tes fonctions quand t'as une merde. Sinon ça te vire les warnings et les erreurs et ça aide pas au debug.
* fais un echo de ton $dir dans ta boucle comme ça tu sauras où t'en es.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°320403
xkamui
Their Destiny Was Foreordained
Posté le 28-02-2003 à 17:00:44  profilanswer
 

pour les @, je les ai viré
 
résultat :  
 

Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp\www\[annonce]\ann\suppr_ann.txt on line 6
 
Warning: unlink() failed (Permission denied) in c:\program files\easyphp\www\[annonce]\ann\suppr_ann.txt on line 8
 
img/photos/bozo/1046393344


 
avec bozo = nom_ser et 1046393344 = ref_moto

n°320543
dropsy
et bonne chance surtout...
Posté le 28-02-2003 à 20:18:20  profilanswer
 

Quelle est la valeur de $dir avant le if? il a peut-être une mauvaise tête

n°320659
xkamui
Their Destiny Was Foreordained
Posté le 01-03-2003 à 00:44:31  profilanswer
 

hors de la boucle, avant celle-ci :  
$dir=img/photos/bozo/1046393344
 
dans la boucle :  
$dir=img/photos/bozo/1046393344
 
bref, aucune différence... j'suis toujours coincé !!  [:toukc]  :cry:  :cry:

n°320839
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-03-2003 à 18:19:44  profilanswer
 

File le path complet de ton répertoire. Chu certain que c'est une connerie du style. Par exemple, quand t'exécutes ton script, tu sais quel est le répertoire courant ? Passke si c'est pas celui où y a img/photos/bozo/1046393344 comme sous-répertoires, bin c'est forcé qu'il t'envoie chier [:joce]
Fais un truc genre getcwd() pour connaître le répertoire courant et place-le juste avant l'entrée dans ta boucle.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°321016
xkamui
Their Destiny Was Foreordained
Posté le 02-03-2003 à 05:11:36  profilanswer
 

voici l'arborescence de mon répertoire :  
http://xkamui.com.free.fr/divers/hfr/tree.png
 
inclusion de getcwd() avant la boucle :

curent folder : c:\program files\easyphp\www\annonces


 
inclusion de $dir avant la boucle :

img/photos/bozo/1046393344


 
messages d'érreurs pendant la boucle (infinie...) :

Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 9
 
Warning: unlink() failed (Permission denied) in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 11


 
code php et énumération des lignes :  

Code :
  1. 01. <?
  2. 02.  // supression des fichiers !!!
  3. 03.  $dir="img/photos/".$PHP_AUTH_USER."/".$ref."";
  4. 04.  echo "curent folder : ".getcwd()."<br />";
  5. 05.  echo $dir."<br />";
  6. 06.
  7. 07.  if (opendir("$dir" )!=FALSE)
  8. 08.   {
  9. 09.   while (false !== ($file = readdir("$dir" )))
  10. 10.    {
  11. 11.    if ($file!="." || $file!=".." ){unlink ("$file" );}
  12. 12.    echo $dir;
  13. 13.    }
  14. 14.   closeir ("$dir" );
  15. 15.   rmdir ("$dir" );
  16. 16.   }
  17. 17. ?>


Message édité par xkamui le 02-03-2003 à 15:47:16
n°321041
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-03-2003 à 11:18:28  profilanswer
 

Essaie avec des \ plutôt que des / :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 02-03-2003 à 11:18:28  profilanswer
 

n°321128
xkamui
Their Destiny Was Foreordained
Posté le 02-03-2003 à 15:45:07  profilanswer
 

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 3
 
Parse error: parse error, unexpected '\"' in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 3

n°321162
dropsy
et bonne chance surtout...
Posté le 02-03-2003 à 18:21:16  profilanswer
 

xkamui a écrit :

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 3
 
Parse error: parse error, unexpected '\"' in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 3




 
il faut doubler les \ dans ta chaine:
 
03.  $dir="img\\photos\\".$PHP_AUTH_USER."\\".$ref."";  

n°321186
xkamui
Their Destiny Was Foreordained
Posté le 02-03-2003 à 19:39:27  profilanswer
 

si je double, j'obtient le même type d'erreur !!
 

curent folder : c:\program files\easyphp\www\annonces
img\photos\bozo\1046393344
 
Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 9
 
Warning: unlink() failed (Permission denied) in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 11

n°321238
beleg
黑社會
Posté le 02-03-2003 à 20:55:13  profilanswer
 

carrement pas la meme erreur...  
un coup c la ligne 3, une parse error
 

Citation :

Parse error: parse error, unexpected '\"' in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 3


 
bon c reglé apparemment
 
maintenant tu as ouvert ton repertoire mais tu narrives pas a le lire

Citation :

curent folder : c:\program files\easyphp\www\annonces  
img\photos\bozo\1046393344  
 
Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp\www\annonces\ann\suppr_ann.txt on line 9  


 
readdir("$dir" ) .. je crois que c l'ID recup retourné par l'opendir quil faut mettre ici et non pas a nouveau le chemin.
 
bref, lire les msgs derreur, ca a du bon.

n°321297
xkamui
Their Destiny Was Foreordained
Posté le 02-03-2003 à 22:41:09  profilanswer
 

Ayé !!! c'est bon !!!!
 
voilà ce que j'ai fait et qui marche !!!
 

Code :
  1. $dir="img/photos/".$PHP_AUTH_USER."/".$ref."/";
  2. $folder=@opendir("$dir" );
  3. if ($folder!=FALSE)
  4.   {
  5.   while (false !== ($file = @readdir($folder)))
  6.    { 
  7.    if ($file!='.' && $file!='..')
  8.     {
  9.     @unlink ("".$dir."/".$file."" );
  10.     }
  11.    }
  12.   @rmdir ($dir);
  13. }


 
merci @ tous pour votre aide !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  suppr des fic ds un rép qui est ds un rep... [ - Job's Done - ]

 

Sujets relatifs
Les Masques et la fonction preg_replace [ - Job's Done - ] Merci belegprob lors de l'upload avec free [ - Job's Done - ]
prob avec le W3C Validator... [ - Job's Done - ][ACCESS] éditer une requête en VB [DONE]
[JS] Mettre une valeur dans une autre fenêtre [ - Job's Done - ]COOKIE => marche pô avec free ???!!!! [ - Job's Done - ]
Plus de sujets relatifs à : suppr des fic ds un rép qui est ds un rep... [ - Job's Done - ]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)