Certainement une variable mal utilisée
le 24/08/2006 à 23:31
Keika
salut
j'ai ce code :
$dir = opendir('./galeries') ;
while (false !== ($file = readdir($dir))) {
if(is_dir($file)) {
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=3&'.$file.'" title=""><?php echo $dir ?></a></div>' ;
}
}}
mais rien à l'affichage...
si je print($file) ; j'ai l'affichage du contenu du dossier galeries, alors ou ca ne marche aps ?
merci
K.
Le PHP --> C'est dur !
le 25/08/2006 à 02:00
Muxy
Alors c'est vraiment parce que je pense aider mais désolé si c'est pas ca ...
peut etre
...
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=3&'.$file.'" title="">"'.$dir.'"</a></div>' ;
Enfin un echo dans un echo me parait bizarre..
Voilà
Débutant mais motivé !
le 25/08/2006 à 11:00
Keika
ooooooook !
l'a ca m'affiche quelque chose, j'ai des liens qui sont créés effectivement, mais vers les repertoires . (dossier actuels) et .. (dossier parent) qui ne me sont d'aucune utilité...
à croire que is_dir ne reconnait que ca comme dossier dans galeries alors que j'en ai d'autre..
Le PHP --> C'est dur !
le 25/08/2006 à 22:26
Bzh
<?php
$dir = opendir('./galeries') ;
while ( $file = readdir( $dir ) ) {
if( is_dir( $file ) ) {
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=&dossier='.$file.'" title="">'. $file .'</a></div>' ;
}
}
?>
Voili !
Tu t'embrouille encore les pinceaux avec les balises <?php et ?> ...
Attention ...
Tchuss
le 26/08/2006 à 11:54
Keika
ca ne m'affiche toujours que les dossiers actuel et parent (.) et (..)
alors qu'avec ca :
$dir = opendir('./galeries') ;
while ( $file = readdir($dir)) {
if(!is_dir($file)) {
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=3&dossier='.$file.'" title="">'.$file.'</a></div>' ;
}
}
Bon là il m'affiche tout ce que contient galeries.. mais je n'ai qu'a ne mettre que des dossiers et ca ira... c'est une solution qui ne me convient pas entierement mais au moins ca fonctionne...
Le PHP --> C'est dur !
salut,
pour . et .. il faut les filtrer, donc deux conditions dans le if !
tu cherche à afficher quoi ?
si tu veut affciher que les répertoires il faut enlever le ! (la tu n'affiche que ce qui n'est pas un répertoire).
<?php
$dir = opendir('.') ;
while ( $file = readdir($dir)) {
if(is_dir($file) && $file !='.' && $file != '..') {
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=3&dossier='.$file.'" title="">'.$file.'</a></div>' ;
}
}
?>
ce code ne m'affiche que les répertoires du répertoire considéré (ici . pour l'essai).
Il en faut peu pour être heureux !!!!!
le 26/08/2006 à 13:56
Keika
ok, ca fonctionne bien.
Donc je dois avoir un soucis de chemin !
l'architecture de mon site est:
galeries
pages
scripts
index.php
style.css
alors, bien entendu, j'affiche tout dans index.php mais le script ou j'ai placé ce code est dans le dossier scripts (affiché par un include()). Quand je mets le code de moogli, les dossiers galeries, pages, scripts s'affichent. Quand je change le chemin dans opendir (./galeries/ ou /galeries/) je n'ai rien qui s'affiche alors que j'ai des dossiers dans galeries...
Il doit considérer me chemin à prendre à partir du fichier ou les script est affiché (index.php) et non à partir du dossier ou le script est enregistré (dossier scripts)
voyez vous quel chemin je dois mettre.
Le PHP --> C'est dur !
Après quelque essai et reflexion : ton code fonctionne parfaitement
Depuis le début, on se focalise sur le opendir, mais celui ci fonctionne parfaitement (il suffit pour t'en convraincre de faire un var_dump($dir);).
Donc le problème vient d'ailleur => id_dir().
Pourquoi ?
Parce que lors du traitement du script tu est dans le répertoire / (puisse qu'a aucun moment tu ne change de répertoire) donc php chercher si un répertoire /$file existe, ce qui n'est évidemment pas le cas (met un simple echo $file.'<br>'; dans le while).
Donc utilise is_dir('galeries/'.$file) et le tour est jouer :).
tordu mais logique
Il en faut peu pour être heureux !!!!!
le 26/08/2006 à 21:17
Keika
ok merci moogli, avec ca j'ai réussi a le faire fonctionner. maintenant il ne reconnait effectivement que les dossiers.
donc ca donne ceci à la fin :
<?php
$dir = opendir('./galeries/') ;
while ( $file = readdir($dir)) {
if(is_dir('./galeries/'.$file) && $file !='.' && $file != '..') {
echo '<div><a href="'.$_SERVER['PHP_SELF'].'?var_pages=3&dossier='.$file.'" title="">'.$file.'</a></div>' ;
}
}
?>
facile pourtant... ^_^
Le PHP --> C'est dur !
le 08/09/2006 à 14:43
Keika
hop je remets ce post au gout du jour.
Alors voila, la fonction m'affiche toujours les dossiers, et correctement en local. Mon soucis est que sur le serveur distant (free) il ne m'affiche pas les dossiers par ordre alphabetique... auriez-vous une idée pour que ca sorte correctement ?
Merci
K.
Le PHP --> C'est dur !
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: