probleme cookies de session

probleme cookies de session - PHP - Programmation

Marsh Posté le 22-03-2006 à 17:56:04    

Bonjour à tous,
 
J'ai un problème concernant mes sessions : j'ai créé des variables sessions dans un site contenant des frames, j'ai passé tous les id de session dans le get, tout fonctionne impecablement tant que mes pages ne se trouvent pas dans une frame. A partir du moment où elles s'y trouvent, il m'est impossible de garder une variable session sur 2 pages consécutives. J'ai par contre remarqué que ce sont les cookies de sessions qui sont bloqués par IE (toujours dans le cas des frames) car dès que j'autorise tous les cookies sur IE, le problème est règlé. Seulement j'ai fait en sorte comme je l'ai dit précédemment de faire passer la session ID dans le GET et IE me recherche toujours les informations dans le cookie de session. Je vous laisse mes morceaux de codes pour être plus précis :
 
La première page :
 

Citation :

<?
 ini_set('session.use_cookies', '0');
 
 session_start();
 $id_session = session_id();
 
 $_SESSION['test_var'] = "test";
 
 echo "<a href='ses.php?sid=".$id_session."'>page 2</a>";
 
?>


 
 
et sur la seconde page, ma variable $_SESSION['test_var'] est null quand je la dump
 

Citation :

<?
 ini_set('session.use_cookies','0');
 
 if (isset($_GET['sid']))
 {
  session_id($_GET['sid']);
  session_start();
   
  echo 'variable session  : ';
  var_dump($_SESSION['test_var']);
 
 }
 else
 {
  echo 'Votre session à expirée, veuillez la réinitialiser en cliquant <a href="index.php">ici</a>';
 }
 
 
 
?>


Un peu d'aide serait la bienvenue :)  
Merci d'avance


Message édité par aleks2a le 22-03-2006 à 17:56:44
Reply

Marsh Posté le 22-03-2006 à 17:56:04   

Reply

Marsh Posté le 22-03-2006 à 19:57:55    

essaye:
 
       ini_set("session.use_trans_sid", "true" );
       ini_set("url_rewriter.tags", "a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=" );
 
tu n a normalement pas besoin de faire passer le sid dans les frames.
 
en plus, c est ``SID`` plutot que ``sid``
 
http://fr.php.net/manual/en/ref.session.php

Reply

Marsh Posté le 22-03-2006 à 22:37:35    

Merci pour ta réponse, je regarde dès demain matin au taff et je te tiens au courant ;)

Reply

Marsh Posté le 23-03-2006 à 09:09:42    

Negatif, ma variable est toujours null au passage à la seconde page ... ce qui est vraiment bizzar, c'est que le problème apparait seulement lors de l'intégration de cette page dans une frame, alors qu'autrement (si je visualise la page seule) il n'y a pas de problème.

Reply

Marsh Posté le 23-03-2006 à 10:05:54    

tu peut poster le code avec ce que tu as changé?

Reply

Marsh Posté le 23-03-2006 à 10:23:11    

Voila la page 1 modifiée :

Citation :


<?
       ini_set("session.use_cookies", "0" );
       ini_set("session.use_trans_sid", "true" );
       ini_set("url_rewriter.tags", "a=href,area=href,script=src,link=href," ) ;
 
 session_start();
 $id_session = session_id();
 
 $_SESSION['test_var'] = "test";
 
 echo "<a href='ses.php?SID=".$id_session."'>page 2</a>";
 
?>


et la seconde :
 

Citation :

<?
     ini_set("session.use_cookies", "0" );
       ini_set("session.use_trans_sid", "true" );
       ini_set("url_rewriter.tags", "a=href,area=href,script=src,link=href," );
 
 if (isset($_GET['SID']))
 {
  session_id($_GET['SID']);
  session_start();
   
  echo 'variable session page 2 : ';
  var_dump($_SESSION['test_var']);
  echo '<br><a href="ses2.php?SID='.$_GET['SID'].'">page 3</a>';
 }
 else
 {
  echo 'Votre session à expirée, veuillez la réinitialiser en cliquant <a href="index.php">ici</a>';
 }
 
 
 
?>


 
Je suis en train de penser que la page qui contient les frames se trouve sur un serveur, et la page qui contient tous mes scripts php (celle placée dans la frame centrale) se trouve sur un autre serveur ...  Je vais essayer de placer les morceaux de script pour la désactivation des cookies dans la page contenant les frames et je te tiens aux courant.

Reply

Marsh Posté le 23-03-2006 à 10:32:49    

Oula, je voie que c est le boxon.
 
Ce que tu devrais faire dans un premier temps, c est lire toute la doc PHP sur les sessions. (lien ci-dessus)
 
Il doit y avoir quelquechose d évident que tu a dû oublié, mais tu mettra sûrement moins de temps à le découvrir si tu connait bien le fonctionnenment des sessions.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed