Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de session

5 réponses
Avatar
Barbbu
Bonjour,

sur cette page :
http://dadsurweb.free.fr/IN&OUT/photos.html
si je clique une première fois sur un lien (de concert) ça marche comme il
faut (fenêtre pop-up avec diaporama)
Mais si je clique sur un autre concert (même en ayant fermé la popup) ça
marche plus !
Je suppose que c'est une question de fermeture de session, mais je sait pas
comment la mettre en oeuvre.
Pouvez-vous m'aider ?
Merci.

ci dessous mon fichier .php :

<?PHP session_register("photo");

function display($rep,$niv) {
global $photo;
$dir = opendir($rep);

if($niv>0) { // Lit les sous-dossiers
while ($f = readdir($dir))
if ($f!="." && $f!=".." && !is_file($rep."/".$f))
display($rep."/".$f,$niv-1); // Script fini? On recommence...
if($photo=="") display($rep,$niv);
}

while ($f = readdir($dir)) { // Photos du dossier courant
if (is_file($rep."/".$f))
if (strpos("jpeg.jpg.gif.bmp",substr($f,-4))) {
// La photo en cours est-elle celle affichée ?
// Si non : on affiche, si oui : suivante
if($photo == $rep."/".$f) { $photo = ""; }
else if ($photo == "")
{ $photo = $rep."/".$f; echo $photo; }
}
}

closedir($dir);
} ?>

<HTML>
<HEAD>
<TITLE>Photos de concerts</TITLE>
<META http-equiv="refresh" content="3">
</HEAD>
<BODY bgcolor=black><center>
<TABLE><TR><TD align=left>
<img src="<?PHP display(".",1); ?>"><br><br>
<!--<font size=3 color=white><b>Photo : </b>--> <? //echo $photo;?>
</TD></TR></TABLE>
</BODY>
</HTML>

5 réponses

Avatar
DavLand
Bonjour,

Je sais pas ou tu vas lire tes images, mais

fait clique droit sur le x de la photo qui apparaît pas sur le 2e
concert et

tu vas voir: << http://dadsurweb.free.fr/IN&OUT/diaporama2/ >>

tu pointes vers rien sur la 2e et 3e c'est pour ça que ça fonctionne
pas.

tu dois pas lire le bon dossier ou sous-dossier

vérifie ça
Avatar
Barbbu
Salut,

tu pointes vers rien sur la 2e et 3e c'est pour ça que ça fonctionne
pas.

tu dois pas lire le bon dossier ou sous-dossier

vérifie ça


Non, c'est pas ça.
Commence par cliquer sur le 2eme concert et tu verras !...
Merci

Avatar
Thierry
bonjour,

<oulala>
il semble que la fonction session_register va se "déprécier".
il vaudrait mieux utiliser session_start() et $_SESSION
</oulala>

donc on a déjà visionné un concert la variable de session $photo a donc une
valeur
et on arrive là

if (strpos("jpeg.jpg.gif.bmp",substr($f,-4))) {
soit

// La photo en cours est-elle celle affichée ?
// Si non : on affiche, si oui : suivante
if($photo == $rep."/".$f) { $photo = ""; }
impossible car on est plus dans le répertoire du concert précédent

else if ($photo == "")
impossible car la variable de session est affectée par la visualisation du

concert précédent
{ $photo = $rep."/".$f; echo $photo; }


Donc si j'ai corretement lu ton code:
à moins de réinitialiser ta session pour chaque concert tu ne pourra jamais
en visualiser qu'un

je pense avoir pointer le "hic", par contre c'est trop loin de ma tournure
d'esprit pour proposer
une solution autre qu'une remise à plat totale du script.

bon courage

thierry

Avatar
DavLand
Je vois ça doit être comme tu dis ta session

essai session_destroy()


exemple : http://www.php.net/session_destroy

à la fin de ton code

peut-être que ça va fonctionner

si non je ne sais pas.
Avatar
Barbbu
"DavLand" a écrit dans le message de news:

Je vois ça doit être comme tu dis ta session

essai session_destroy()


Je m'en suis sorti avec un session_name("un_nom") en début de code, bien sûr
différent à chaque fois.
Merci.