Si je dé-commente "chdir($chemin);" is_dir fait correctement son test mais
lorsque la fonction se rappelle, j'ai une erreur (sûrement à cause de chemin
relatif ). Par contre, si je ne le dé-commente pas, is_dir ne fonctionne pas
correctement et ne m'affiche rien (le test est toujours faux).
Si quelqu'un a une idée pour remédié à ça. je suis preneur (surtout pour des
explications).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour
J'ai un problème avec is_dir.
Avec les sauts de ligne aussi apparemment (tu ne sembles pas savoir aller à la ligne sans sauter une ligne, sauf lorsque le changement de ligne est automatique).
function AfficheDossier ($chemin) { $rep=opendir($chemin);
Où est le test pour vérifier que opendir() a fonctionné ?
//chdir($chemin);
Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
while ($file = readdir($rep)) {
<cit. http://fr.php.net/manual/fr/function.readdir.php> /* Ceci est la MAUVAISE façon de traverser un dossier. */ </cit.>
(la façon correcte est donnée juste au dessus dans la même page)
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier).
echo $file; echo "<br>";
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour rendre le code source plus lisible. Ça me semblerait une bonne idée ici, c'est-à-dire : echo "<br>n";
AfficheDossier($chemin."/".$file);
Ok.
closedir($rep);
Parfait.
Si je dé-commente "chdir($chemin);" is_dir fait correctement son test
Bizarre. Probablement un effet de bord.
mais lorsque la fonction se rappelle, j'ai une erreur (sûrement à cause de chemin relatif ).
Ça me semble normal, cf. ci-dessus.
Par contre, si je ne le dé-commente pas, is_dir ne fonctionne pas correctement et ne m'affiche rien (le test est toujours faux).
Lis bien la page de doc que j'ai citée plus haut, teste bien les différents codes d'erreur possible, ajoute la trace des fichiers... et reviens nous voir si tu n'as toujours pas résolu ton problème !
En passant, puisque ton adresse est invalide, il est de bon ton de le signaler en la suffixant par « .invalid » (sans e) : . ou en majuscules : .
Cordialement, -- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Bonjour
J'ai un problème avec is_dir.
Avec les sauts de ligne aussi apparemment (tu ne sembles pas savoir
aller à la ligne sans sauter une ligne, sauf lorsque le changement de
ligne est automatique).
function AfficheDossier ($chemin) {
$rep=opendir($chemin);
Où est le test pour vérifier que opendir() a fonctionné ?
//chdir($chemin);
Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
while ($file = readdir($rep)) {
<cit. http://fr.php.net/manual/fr/function.readdir.php>
/* Ceci est la MAUVAISE façon de traverser un dossier. */
</cit.>
(la façon correcte est donnée juste au dessus dans la même page)
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne
sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier).
echo $file;
echo "<br>";
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour
rendre le code source plus lisible. Ça me semblerait une bonne idée ici,
c'est-à-dire :
echo "<br>n";
AfficheDossier($chemin."/".$file);
Ok.
closedir($rep);
Parfait.
Si je dé-commente "chdir($chemin);" is_dir fait correctement son test
Bizarre. Probablement un effet de bord.
mais lorsque la fonction se rappelle, j'ai une erreur (sûrement à
cause de chemin relatif ).
Ça me semble normal, cf. ci-dessus.
Par contre, si je ne le dé-commente pas, is_dir ne fonctionne pas
correctement et ne m'affiche rien (le test est toujours faux).
Lis bien la page de doc que j'ai citée plus haut, teste bien les
différents codes d'erreur possible, ajoute la trace des fichiers...
et reviens nous voir si tu n'as toujours pas résolu ton problème !
En passant, puisque ton adresse est invalide, il est de bon ton de le
signaler en la suffixant par « .invalid » (sans e) :
<trand@NOSPAMifrance.com.invalid>.
ou en majuscules :
<trand@NOSPAMifrance.com.INVALID>.
Cordialement,
--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Avec les sauts de ligne aussi apparemment (tu ne sembles pas savoir aller à la ligne sans sauter une ligne, sauf lorsque le changement de ligne est automatique).
function AfficheDossier ($chemin) { $rep=opendir($chemin);
Où est le test pour vérifier que opendir() a fonctionné ?
//chdir($chemin);
Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
while ($file = readdir($rep)) {
<cit. http://fr.php.net/manual/fr/function.readdir.php> /* Ceci est la MAUVAISE façon de traverser un dossier. */ </cit.>
(la façon correcte est donnée juste au dessus dans la même page)
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier).
echo $file; echo "<br>";
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour rendre le code source plus lisible. Ça me semblerait une bonne idée ici, c'est-à-dire : echo "<br>n";
AfficheDossier($chemin."/".$file);
Ok.
closedir($rep);
Parfait.
Si je dé-commente "chdir($chemin);" is_dir fait correctement son test
Bizarre. Probablement un effet de bord.
mais lorsque la fonction se rappelle, j'ai une erreur (sûrement à cause de chemin relatif ).
Ça me semble normal, cf. ci-dessus.
Par contre, si je ne le dé-commente pas, is_dir ne fonctionne pas correctement et ne m'affiche rien (le test est toujours faux).
Lis bien la page de doc que j'ai citée plus haut, teste bien les différents codes d'erreur possible, ajoute la trace des fichiers... et reviens nous voir si tu n'as toujours pas résolu ton problème !
En passant, puisque ton adresse est invalide, il est de bon ton de le signaler en la suffixant par « .invalid » (sans e) : . ou en majuscules : .
Cordialement, -- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Tran
Désolé, j'ai fait une mauvaise manip et le message est parti. Donc aprés les modifications le fonctionnement est toujours identique et j'en suis au même point.
Désolé, j'ai fait une mauvaise manip et le message est parti.
Donc aprés les modifications le fonctionnement est toujours identique et
j'en suis au même point.
Désolé, j'ai fait une mauvaise manip et le message est parti. Donc aprés les modifications le fonctionnement est toujours identique et j'en suis au même point.
Tran
//chdir($chemin); Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
Justement s'est à ce niveau que ça bloque
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier). Je ne veux afficher que les dossiers
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour rendre le code source plus lisible. Ça me semblerait une bonne idée ici, c'est-à-dire : echo "<br>n"; entre echo "<br>n"; et echo "<br>"; je n'ai aucune difference d'affichage
?!?
En passant, puisque ton adresse est invalide, il est de bon ton de le signaler en la suffixant par « .invalid » (sans e) : Modifié
J'ai arrangé la fonction suivant les conseils (j'espère)
pas de dossier pas de dossier ADMINISTRATION Warning: opendir(../creer liste fichiers/dossier unir/ADMINISTRATION): failed to open dir: Invalid argument in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 37 erreur d'ouverture du dossier Warning: chdir(): No such file or directory (errno 2) in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 42
Warning: readdir(): supplied argument is not a valid Directory resource in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 44
Warning: closedir(): supplied argument is not a valid Directory resource in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 81
En gros la fonction liste la racine(4 dossiers, je ne met pas toutes les erreurs), pas les sous dossiers
Sans chdir($chemin);
pas de dossier pas de dossier
//chdir($chemin);
Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
Justement s'est à ce niveau que ça bloque
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne
sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier).
Je ne veux afficher que les dossiers
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour
rendre le code source plus lisible. Ça me semblerait une bonne idée ici,
c'est-à-dire : echo "<br>n";
entre echo "<br>n"; et echo "<br>"; je n'ai aucune difference d'affichage
?!?
En passant, puisque ton adresse est invalide, il est de bon ton de le
signaler en la suffixant par « .invalid » (sans e) :
Modifié
J'ai arrangé la fonction suivant les conseils (j'espère)
pas de dossier
pas de dossier
ADMINISTRATION
Warning: opendir(../creer liste fichiers/dossier unir/ADMINISTRATION):
failed to open dir: Invalid argument in d:program
fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste
dossier.php on line 37
erreur d'ouverture du dossier
Warning: chdir(): No such file or directory (errno 2) in d:program
fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste
dossier.php on line 42
Warning: readdir(): supplied argument is not a valid Directory resource in
d:program fileseasyphp1-8wwwgestion_unirgerer donnees
unirfonction_liste dossier.php on line 44
Warning: closedir(): supplied argument is not a valid Directory resource in
d:program fileseasyphp1-8wwwgestion_unirgerer donnees
unirfonction_liste dossier.php on line 81
En gros la fonction liste la racine(4 dossiers, je ne met pas toutes les
erreurs), pas les sous dossiers
//chdir($chemin); Cela ne devrait pas être utile. Laisser le commentaire ou virer la ligne.
Justement s'est à ce niveau que ça bloque
Ok, mais lors de tes tests tu devrais afficher aussi les fichiers qui ne sont pas des répertoires (sans, bien sûr, rappeler AfficheDossier). Je ne veux afficher que les dossiers
J'ai l'habitude de mettre des sauts de ligne de temps en temps, pour rendre le code source plus lisible. Ça me semblerait une bonne idée ici, c'est-à-dire : echo "<br>n"; entre echo "<br>n"; et echo "<br>"; je n'ai aucune difference d'affichage
?!?
En passant, puisque ton adresse est invalide, il est de bon ton de le signaler en la suffixant par « .invalid » (sans e) : Modifié
J'ai arrangé la fonction suivant les conseils (j'espère)
pas de dossier pas de dossier ADMINISTRATION Warning: opendir(../creer liste fichiers/dossier unir/ADMINISTRATION): failed to open dir: Invalid argument in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 37 erreur d'ouverture du dossier Warning: chdir(): No such file or directory (errno 2) in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 42
Warning: readdir(): supplied argument is not a valid Directory resource in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 44
Warning: closedir(): supplied argument is not a valid Directory resource in d:program fileseasyphp1-8wwwgestion_unirgerer donnees unirfonction_liste dossier.php on line 81
En gros la fonction liste la racine(4 dossiers, je ne met pas toutes les erreurs), pas les sous dossiers
Il semblerait que tu ais oublié un détail : $file ne contient que le nom du fichier/dossier en parcouru par readdir. La variable NE CONTIENT PAS le chemin complet à ce fichier/dossier. Ca signifie que quand tu fais un is_dir($file), tu testes is_dir("mon_chemin_en_cours/$file").
Il faut donc remplacer is_dir($file) par is_dir("$chemin/$file").
Il semblerait que tu ais oublié un détail : $file ne contient que le nom du
fichier/dossier en parcouru par readdir. La variable NE CONTIENT PAS le
chemin complet à ce fichier/dossier. Ca signifie que quand tu fais un
is_dir($file), tu testes is_dir("mon_chemin_en_cours/$file").
Il faut donc remplacer is_dir($file) par is_dir("$chemin/$file").
Il semblerait que tu ais oublié un détail : $file ne contient que le nom du fichier/dossier en parcouru par readdir. La variable NE CONTIENT PAS le chemin complet à ce fichier/dossier. Ca signifie que quand tu fais un is_dir($file), tu testes is_dir("mon_chemin_en_cours/$file").
Il faut donc remplacer is_dir($file) par is_dir("$chemin/$file").
Cordialement,
Benjamin Malynovytch.
Tran
Si ça peut aider quelqu'un j'ai trouvé mon erreur.
Comme le répertoire à lister n'est pas la ou ce trouve le script, j'ai été obligé de fournir à is_dir le chemin réel du dossier. if(($file != '..' && $file !='.' && $file !='') && is_dir(realpath($chemin)."/".$file))
Le php s'est sympa et j'ai encore des cheuveux, pourvu que ça dure
Si ça peut aider quelqu'un j'ai trouvé mon erreur.
Comme le répertoire à lister n'est pas la ou ce trouve le script, j'ai été
obligé de fournir à is_dir le chemin réel du dossier.
if(($file != '..' && $file !='.' && $file !='') &&
is_dir(realpath($chemin)."/".$file))
Le php s'est sympa et j'ai encore des cheuveux, pourvu que ça dure
Si ça peut aider quelqu'un j'ai trouvé mon erreur.
Comme le répertoire à lister n'est pas la ou ce trouve le script, j'ai été obligé de fournir à is_dir le chemin réel du dossier. if(($file != '..' && $file !='.' && $file !='') && is_dir(realpath($chemin)."/".$file))
Le php s'est sympa et j'ai encore des cheuveux, pourvu que ça dure