FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Problème pour conserver la SESSION
 

Problème pour conserver la SESSION

Il y a 344 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Problème pour conserver la SESSION
 
Plus d'informations

Bonjour à tous,
 
Je vous explique mon soucis, qui est soit lié au javascript, soit à mon code html, soit à mon code php (rien que ca :) )
 
Structure:
index.php
popup.php
 
index.php est une page qui scan le contenu d'un répertoire dans lequel se trouve des images, et génère des miniatures qu'il affiche à l'écran.
popup.php est le popup qui s'ouvre lorsque vous cliquez sur une miniature. Grâve au java, elle affiche l'image dans sa taille réelle.
 
Mon objectif: Je cherche a créer des liens "précédent" et "suivant" sur le popup. De manière à naviguer d'une photo à l'autre sans quitter mon popup.
 
Mon soucis est le suivant, pour générer ces fameux liens, il me faut une table contenant le nombre totale ainsi que le nom des images du même album. Jusque là pas de problème je l'ai.
Mon problème est de réussir à transmettre ce tableau vers mon popup.
J'ai trouvé une méthode qui consiste à stocker le tout dans une session

Code :
  1. $_SESSION["listImg"] = $listImg;


 
Youpi j'ai trouvé. Et bien non...
Le popup ne conserve pas les informations de la session, et d'ailleurs dans mon popup, je n'ai aucune session.
Je suis donc obligé de faire de commencer mon popup.php par session_start();
Ok, mon popup a une session.
Etant donné que je n'ai aucun lié entre mon index et mon popup, je dit à mon index d'envoyer mon fameux tableau via les liens des miniatures.
 
On obtient:

Code :
  1. <a href="#" onclick="javascript:NewWindow=window.open('modules/photos/popup.php?image=<? echo $linkimg; ?>&rep=<? echo $repImg; ?>&session=new','image','toolbar=0,location=0,directories=0,status=0,resizable=1,copyhistory=0,scrollbars=0,menuBar=0,width=<? echo $src_w2 ?>,height=<? echo $src_h2 ?>'); NewWindow.focus();"><img src="ressources/photos/mini/<? echo $dossier.'/mini_'.$listImg[$numImg] ?>"


 
Via un petit code je vérifie que je récupère bien le tableau, et bien non quedal...
 
Pour palier à ca, je me dit bon pas grave, on refais tourné une moulinette pour avoir la liste de toutes les photos présentent dans le répertoire et je regénère mon tableau pour ensuite créé mes liens.
 
* Vous me suivez toujours? *   :sleep:  
 
Bref, ceci fait j'ai mon tableau et toutes mes infos dans mon popup.php
Youpi!
Je créé mes liens, je clique dessus, boom perte de session...
Une nouvelle page poitant sur le même fichier php (popup.php), je me retrouve sans session... via un misérable <a href>
JE finit par me demander si ce n'est pas la manière dont est appelé le popup.php (via le code javascript), qui briderais toute ma page.
 
Résultat je craque, j'ai le cerveau qui m'abandonne sur ce coup ^^
J'en fais donc appel à vous messieurs les experts, les pros des Sessions, ou tout simplement les gens ayant des alternatives pour me permettre de récupérer des infos d'une page à l'autre.
 
 
Merci par avance pour votre aide!
Je vous donne ci-dessous mes bout de code, qui vous parlerons sans doute plus que mon pavé :)
 
Le code des liens des miniatures (situé sur index.php):

Code :
  1. <td align="center"><a href="#" onclick="javascript:NewWindow=window.open('modules/photos/popup.php?image=<? echo $linkimg; ?>&rep=<? echo $repImg; ?>&session=new','image','toolbar=0,location=0,directories=0,status=0,resizable=1,copyhistory=0,scrollbars=0,menuBar=0,width=<? echo $src_w2 ?>,height=<? echo $src_h2 ?>'); NewWindow.focus();"><img src="ressources/photos/mini/<? echo $dossier.'/mini_'.$listImg[$numImg] ?>" border="0" width="50" height="50"></a></td>


 
Le code de mon popup.php (attention les 3/4 du code me servait simplement à vérifier l'existance d'une session):

Code :
  1. <?
  2. session_start();
  3. $image = $_GET["image"];
  4. $rep = $_GET["rep"];
  5. $rep = "../../".$rep;
  6. function isImg ($file){if (eregi(".jpg$",$file)){return true;}}
  7. if (isset($_GET["session"])) {
  8.     if ($_GET["session"] == "new" ) {
  9.         session_unset();
  10.         session_destroy();
  11.     }
  12. }
  13. if (!isset($_SESSION["listImg"])) {
  14.     echo "test";
  15.     $handle = opendir("$rep" ); // On ouvre le repertoire des images  
  16.     while ($file = readdir($handle)) {
  17.         if ($file != "." && $file != ".." && isImg ($file)) {
  18.             $listImg[] = $file; // On place toutes les images du dossier dans le tableau $imgList  
  19.         }
  20.     }
  21.     closedir($handle); // On ferme le repertoire des images
  22.     sort ($listImg); // On tri les fichiers dans l'orde alphabetique
  23.     $_SESSION["listImg"] = $listImg;
  24.     } else {
  25.             echo "test2";
  26.     }
  27. echo "<pre>";print_r($_SESSION);echo "</pre>";
  28. ?>
  29. <HTML><HEAD><TITLE>Album PHOTO</TITLE></HEAD>
  30. <BODY>
  31. <CENTER>
  32. <img src="<? echo $rep."/".$image; ?>"</br>
  33. Précédent < > Suivant
  34. </CENTER>
  35. </BODY></HTML>


Message édité par le lapin le 25-08-2006 à 15:26:27


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Problème pour conserver la SESSION
 

Annonces Google
Publicité