La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Problème avec Session
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Problème avec Session  (Lu 1152 fois)
Problème avec Session
« sur: le 25-08-2006 a 19:05:01 »
Le lapin
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 3



Je suis un lama!

Voir le Profil
Répondre avec citation

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:
$_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:
<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>

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:
<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:
<?
session_start();

$image = $_GET["image"];
$rep = $_GET["rep"];
$rep = "../../".$rep;

function isImg ($file){if (eregi(".jpg$",$file)){return true;}}

if (isset($_GET["session"])) {
   if ($_GET["session"] == "new") {
      session_unset();
      session_destroy();
   }
}

if (!isset($_SESSION["listImg"])) {
   echo "test";
   $handle = opendir("$rep"); // On ouvre le repertoire des images
   while ($file = readdir($handle)) {
      if ($file != "." && $file != ".." && isImg ($file)) {
         $listImg[] = $file; // On place toutes les images du dossier dans le tableau $imgList
      }
   }
   closedir($handle); // On ferme le repertoire des images
   sort ($listImg); // On tri les fichiers dans l'orde alphabetique
   $_SESSION["listImg"] = $listImg;

   } else {
         echo "test2";
   }

echo "<pre>";print_r($_SESSION);echo "</pre>";

?>
<HTML><HEAD><TITLE>Album PHOTO</TITLE></HEAD>
<BODY>
<CENTER>
<img src="<? echo $rep."/".$image; ?>"</br>
Précédent < > Suivant
</CENTER>
</BODY></HTML>

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg