8797 sujets

Développement web côté serveur, CMS

Bonjour,

Soit je ne voit plus claire, soit il y a un mystère, voici mon pb :

Le contenu de la variable $idAlbum disparait dans la boucle while. J'ai testé en renommant - marche pas, en la mettant avant - la ça marche, mais dedant rien y fait. A savoir que $dossier_chemin lui fonctionne très bien...

Voici mon code :


function exploration_dossier($dossier_chemin,$idAlbum){
    
	$listeDossierPhoto .= "  <table border='0' cellspacing='10' cellpadding='0'><tr>";
	
	$nouvChemin = substr($dossier_chemin , 6);
	
	$dossier = opendir ($dossier_chemin); 
    
	while ($fichier_nom = readdir ($dossier)) {
	
		$fichier_chemin = $dossier_chemin.'/'.$fichier_nom;

        if ($fichier_nom != "." && $fichier_nom != ".." && $fichier_nom != '.DS_Store' && filetype($fichier_chemin) != 'dir') {
        
		   $listeDossierPhoto .= "<td>truc ".$dossier_chemin.$idAlbum."</td>";
		   $i++;
            
        }
        
    } 
    closedir ($dossier);
	
	$listeDossierPhoto .= "</tr></table>";

	return $listeDossierPhoto;
}



echo exploration_dossier($_GET['dossier'],$_GET['idAlbum']);


Préçision qui a peut être son importance ce code est chargé via une fonction ajax.

Si quelqu'un à une idée... Ou peut être est ce un bug PHP, donc y a t il une soluce de contournement...

Merci d'avance
Bonsoir,

directement à propos de ton problème, que donne un var_dump() de cette variable dans le while ?


Non lié mais quelques remarques:
-L'utilisation d'une variable provenant de l'extérieur ($_GET) sans aucun filtre est dangereuse.
-Ton code HTML m'a pas l'air vraiment standard... c'est un peu le centre de la communauté alsacréations quand même Smiley murf
var_dump() ne done rien, j'avais aussi testé...

Et pour l'utilisation du GET, merci de t'en inquiéter, mais ce dode est utiliser dans une partie adlinistrative sécurisé, et de plus il chargé par htmlRequest, donc pas vraiment visible...

Enfin, le code que j'affiche est alégé pour en faciliter la lecture, et même celui ci ne fonctionne pas.
Salut,

es tu sur que $_GET['idAlbum'] existe bien? (pas de probleme de casse ou de _ dans l'url?) Qu'est ce que ca donne si tu fait un echo de $idAlbum jsute avant le while? et en entrée de boucle? et après la boucle? Est-ce que ton idAlbum ne serait pas un 0 numérique qui correspond en php à une chaine vide? Est ce qu'il n'y a pas un caractère parasite quelque part (ca arrive)? Et quel est cet étrange '$i++' qui n'est ni déclaré, ni initialisé, ni ... utilisé?

Il y a forcément une explication... un bug de php de cette envergure n'est pas possible. J'espere que mes questions vont te faire avancer...
Modifié par skywalk3r (06 Dec 2007 - 10:28)
skywalk3r a écrit :
Salut,

es tu sur que $_GET['idAlbum'] existe bien? (pas de probleme de casse ou de _ dans l'url?) Qu'est ce que ca donne si tu fait un echo de $idAlbum jsute avant le while? et en entrée de boucle? et après la boucle? Est-ce que ton idAlbum ne serait pas un 0 numérique qui correspond en php à une chaine vide? Est ce qu'il n'y a pas un caractère parasite quelque part (ca arrive)? Et quel est cet étrange '$i++' qui n'est ni déclaré, ni initialisé, ni ... utilisé?

Il y a forcément une explication... un bug de php de cette envergure n'est pas possible. J'espere que mes questions vont te faire avancer...


Désolé j'ai confondu les boutons "citer" et "editer" Smiley biggol Smiley biggol Smiley biggol
Modifié par skywalk3r (06 Dec 2007 - 10:29)
Et oui... A force de bosser sur un truc on ne voit plus claire...

Effectivement, cette variable a disparu en cours de route...

Petit conseil à ceux que ça interresse dans ce cas :

Retracer bien tout le chemin de la variable.

Merci à skywalk3r et Necromantik pour vos réponses.