Session impossible avec IE mais Firefox ok !?

Session impossible avec IE mais Firefox ok !? - PHP - Programmation

Marsh Posté le 30-01-2005 à 15:04:11    

Salut,
 
J'ai un problème avec les sessions et IE6 + serveur Lycos.
Quand je suis avec IE à chaque rafraichissement de page il me crée une session au lieu de garder l'ancienne :(
 
Pas ce pb avec Firefox. Je n'ai pas de problème avec mon forum (phpbb) qui n'utilise pas 'session_start' and Co ... J'ai testé aussi sur Free.fr je n'ai pas ce pb !
 
Avec google j'ai trouvé ça:
http://support.microsoft.com/defau [...] 316112#kb3
http://forum.rue-montgallet.com/ru [...] 1167-1.htm
...
 
Et j'en passe ... Pour ma part je pense que IE ne crée pas de cookie de session. Pourquoi :??:
 
Microsoft parle de pb avec les domaines contenant des _ mais pour ma part je n'ai que des -
 
Est-ce quelqu'un a eu le même problème ??
 
Merci d'avance

Reply

Marsh Posté le 30-01-2005 à 15:04:11   

Reply

Marsh Posté le 30-01-2005 à 15:05:23    

Est-ce que ca te fais pareil pour tout les sites ? (par exemple celui-ci)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 30-01-2005 à 15:17:08    

A priori non ... Mais je ne sais pas s'il utilise 'session_start' ... ( je vois pas la session_id )
Et si c'est le cas c'est pas facile de le voir quand on n'a pas accés au dossier session ;)

Reply

Marsh Posté le 30-01-2005 à 15:57:35    

strikenet a écrit :

A priori non ... Mais je ne sais pas s'il utilise 'session_start' ... ( je vois pas la session_id )
Et si c'est le cas c'est pas facile de le voir quand on n'a pas accés au dossier session ;)


tu peux tout de meme faire un echo du SESSID, tu saura vite si une session est créée ou pas...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 30-01-2005 à 16:11:06    

Exemple de code simple avec bug :

Code :
  1. <?php
  2. $site_racine='\home\mon-site-com\www'; // contient le chemin interne au serveur de mon site
  3. $sess_session_name='toto';
  4. $membre_session_lt = '7200'; // Durée de la session en seconde
  5. // Fonction sur les sessions
  6. function sessionopen($save_path, $session_name) {
  7.   global $sess_save_path, $sess_session_name, $site_racine;
  8.   $sess_save_path = $site_racine.'/sessions'; //$save_path;
  9.   $sess_session_name = $session_name;
  10.   return(TRUE);
  11. }
  12. function sessionclose() {
  13.   return(TRUE);
  14. }
  15. function sessionread($id) {
  16.   global $sess_save_path, $sess_session_name;
  17.   $sess_file = "$sess_save_path/session_$id";
  18.   if ($fp = @fopen($sess_file, "r" )) {
  19.     $sess_data = fread($fp, filesize($sess_file));
  20.     return($sess_data);
  21.   } else {
  22.     return("" );
  23.   }
  24. }
  25. function sessionwrite($id, $sess_data) {
  26.   global $sess_save_path, $sess_session_name;
  27.   $sess_file = "$sess_save_path/session_$id";
  28.   if ($fp = @fopen($sess_file, "w" )) {
  29.     return(fwrite($fp, $sess_data));
  30.   } else {
  31.     return(FALSE);
  32.   }
  33. }
  34. function sessiondestroy($id) {
  35.   global $sess_save_path, $sess_session_name;
  36.   $sess_file = "$sess_save_path/session_$id";
  37.   return(@unlink($sess_file));
  38. }
  39. function sessiongc($maxlifetime) {
  40.   global $sess_save_path, $sess_session_name, $membre_session_lt;
  41.   $d = opendir($sess_save_path);
  42.   while ($f = readdir($d)) {
  43. $fich = $sess_save_path.'/'.$f;
  44. if (is_file($fich) && ereg("^session_", $f) && (filemtime($fich)+$membre_session_lt)<time()) {
  45.  @unlink($fich);
  46. }
  47.   }
  48.   return TRUE;
  49. }
  50. session_set_save_handler('sessionopen', 'sessionclose', 'sessionread', 'sessionwrite', 'sessiondestroy', 'sessiongc');
  51. session_start();
  52. echo session_id();
  53. ?>


 
Donc il y a juste besoin de ce code + créer le dossier /sessions à la racine du site
session_id() renvoie un ID différent à chaque refresh avec IE et garde le même ID avec Firefox.


Message édité par strikenet le 30-01-2005 à 16:18:23
Reply

Marsh Posté le 31-01-2005 à 18:41:14    

Apparement IE n'accepte pas les - dans les noms de domaine pour la création du cookie de session !!
J'ai le même pb avec un autre site ...
 
J'ai testé sur un PC avec 0 mise à jour pour IE et là ça marche !
 
Merci Microsoft !!!! :fou:
Maj installé pour IE6 : SP1, Q828750, Q330994, Q824145, Q832894, Q831167, Q867801, Q833989

Reply

Marsh Posté le 01-02-2005 à 14:11:09    

Pour ma part Lycos à bloquer le changement d'ID pour les sessions. ( Je sais pas si ça ne pose pas des pbs au niveau de la sécuritée !? )
Par contre, il y a toujours des pbs sur d'autres sites.

Reply

Sujets relatifs:

Leave a Replay

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