Pb de session avec Mozilla mais pas IE/NS

Pb de session avec Mozilla mais pas IE/NS - PHP - Programmation

Marsh Posté le 12-05-2003 à 11:09:38    

Bonjour tout le monde :hello:
J'explique mon chtit problème, je suis en train de développer un ptit site web sur lequel  
les personnes connectées peuvent être de différent "type", chaque "type" pouvant accéder
à certaines pages et pas à d'autres. Mon authentification se base sur des sessions PHP4
et marche nickel sous IE 5, 6 ou Netscape 4.78 mais sous Mozilla, il "oublie" mes variables
de  session :cry: Résultat, l'utilisateur se fait bouler :sweat: Mon ami Google ne m'ayant
pas fourni d'infos comme quoi ces navigateurs se comporteraient différement, auriez-vous une
idée?  
PS : je bosse en register_globals = off
 
Le code d'une page "classique" :

Code :
  1. <?session_start();
  2. include("../../include/fonctions.inc.php" );
  3. echo('<html><title></title><body>');
  4. if (acces("A" )) // l'user a droit de passer que si il est de type "A"
  5. {
  6. //j'affiche ma page
  7. }
  8. else
  9. {
  10. non_axx(); //dis_poliment au monsieur qu'il a rien à faire là
  11. }
  12. ?>
  13. </body>
  14. </html>


 
Le code de la fonction "acces" :

Code :
  1. function acces($type)
  2. {
  3. $passage=FALSE;
  4. if (isset($_SESSION["tab_cat"]))
  5. {
  6.   $tab_cat=$_SESSION["tab_cat"];
  7.   $nb_cat=$_SESSION["nb_cat"];
  8.   for ($i=1;$i<=$nb_cat;$i++)
  9.   {
  10.    if ($tab_cat[$i]==$type)
  11.    {
  12.     $passage=TRUE;
  13.    }
  14.   } 
  15. }
  16. return $passage;
  17. }


 
et enfin le code de la partie où je déclare mes variables d'authentification :

Code :
  1. <?session_start();
  2. include("./include/fonctions.inc.php" );
  3. echo("<html><title></title><body>" );
  4. $login=$_POST['login'];
  5. $ip=$REMOTE_ADDR;
  6. $req_acces="select login,ip,categorie, mot_de_passe_actif, compte_actif from identification where login=\"$login\" AND ip=\"$ip\" and compte_actif=\"1\"";
  7. connex(); //conexion à ma base
  8. //on détermine le nombre de personnes correspondant à ce nom, cette adresse IP et étant "activée"
  9. $res_acces=mysql_query($req_acces);
  10. deconnex(); //déconnexion
  11. $nb_cat=mysql_num_rows($res_acces);
  12. if($nb_cat>0)
  13. //cas où au moins une personne répond à ces exigences
  14. {
  15.   $tab_cat=array();
  16.   $i=1;
  17.   while($tab=mysql_fetch_array($res_acces))
  18.   //on récupère les données nécessaires pour la suite de ce script
  19.   {
  20.    $tab_cat[$i]=$tab["categorie"];
  21.    $nom=$tab["login"];
  22.    $i++;
  23.   }
  24.    //on stocke les données nécessaires en variable de session
  25.    echo("Vous êtes loggé." );
  26.    $_SESSION["nb_cat"]=$nb_cat;
  27.    $_SESSION["tab_cat"]=$tab_cat;
  28.    $_SESSION["login"]=$login;
  29.    stocke_nom($nom);
  30. }


Bien entendu, si il y a de gros problèmes de sécu dans mon système, hésitez pas à me le dire ;)
 
Merci d'avance :jap:


Message édité par Rasta Knight le 12-05-2003 à 11:12:37

---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
Reply

Marsh Posté le 12-05-2003 à 11:09:38   

Reply

Marsh Posté le 12-05-2003 à 13:23:44    

question sans réponse ou question mal posée?


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
Reply

Marsh Posté le 12-05-2003 à 13:30:58    

Cela vient du fait que tu mets des tableaux dans les variables de session.
 
 
Si tu ne fais pas un session_register("tavariable" ) avant affectation ça partira toujours en couille. Comme Mozilla est codé avec les pieds, celui-ci ne les detectera pas. Donc utilises session_register

Reply

Marsh Posté le 12-05-2003 à 13:41:42    

n'importe quoi...
 
aucun rapport entre le code PHP exécuté coté serveur et le client !!!
 
je dirais que ça peut venir d'un mauvais paramétrage du cookie de session qui transmet le SID (voir le paramètre path)
 
si tu affiches le session_id() et que sous Moz il change à chaque refresh / page alors c'est bien ça, il ne connait pas le SID et redémarre une nouvelle session à chaque fois.


Message édité par Sh@rdar le 12-05-2003 à 13:42:16

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 13:44:03    

Sh@rdar a écrit :

n'importe quoi...
 
aucun rapport entre le code PHP exécuté coté serveur et le client !!!
 
je dirais que ça peut venir d'un mauvais paramétrage du cookie de session qui transmet le SID (voir le paramètre path)
 
si tu affiches le session_id() et que sous Moz il change à chaque refresh / page alors c'est bien ça, il ne connait pas le SID et redémarre une nouvelle session à chaque fois.


 
Rien a voir avec le chocolat : si ça venait du serveur que tu sois sous IE ou Mozilla ça serait la meme chose, quand on sait pas on se tait !

Reply

Marsh Posté le 12-05-2003 à 13:48:01    

tu m'a devancé Sh@rdar :lol:
 
samuelp> je dirais qu'à la limite un serialize/unserialize pourrait être utile, mais ce n'est pas la cause du problème.
 
Regarde si dans la config de Mozilla, il accepte les cookies de sessions.


---------------
...oups kernel error...
Reply

Marsh Posté le 12-05-2003 à 13:51:26    

samuelp a écrit :


 
Rien a voir avec le chocolat : si ça venait du serveur que tu sois sous IE ou Mozilla ça serait la meme chose, quand on sait pas on se tait !


 
tu m'explique en quoi Moz gère les tableaux de variables de session PHP différemment de IE ?
 
PHP c'est coté serveur, la gestion des tableaux de variable n'a RIEN a voir avec le navigateur, tu crois que certains brouteurs sont php compliant ?? :lol: :lol:  
 
 
par pitié arrête de raconter n'importe quoi


Message édité par Sh@rdar le 12-05-2003 à 13:52:48

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 13:55:01    

Sh@rdar a écrit :


 
tu m'explique en quoi Moz gère les tableaux de variables de session PHP différemment de IE ?
 
PHP c'est coté serveur, la gestion des tableaux de variable n'a RIEN a voir avec le navigateur
 
par pitié arrête de raconter n'importe quoi


 
Mais  ce n'est pourtant pas compliqué  :heink:  
Si le monsieur utilise les cookies de session faut bien stocker ces cookies quelque part, et ce sera certainement pas sur le serveur  :heink:  
 
 Afin de pour faire la comparaison cookie client / donnees serveur Mozilla utilise l'algorythme de Nali qui permet d'extroquer une chaine de caracteres a partir d'une certaine structure. Si cette structure est corrompue du fait que la serialisation ou la registration n'a pas eu lieu alors Mozilla considere comme corrompue cette donnee.
 
D'ou l'erreur....

Reply

Marsh Posté le 12-05-2003 à 13:57:38    

bon alors réfléchis 2 secondes à ce qu'il y a dans le cookie....
 
il n'y a pas les infos de session ! mais juste l'identifiant qui permettra de les récuperer sur le dd du serveur !
 
la sérialization ne touche pas au cookie du client ! le cookie est envoyé en début de session avec l'entête HTTP correspondante (celle qui provoque les erreurs en cas de sortie) la sérialization et l'écriture se font en fin de script et le cookie est généré depuis belle lurette !
 
je te retourne donc ta remarque : quand on sait pas on se tait !


Message édité par Sh@rdar le 12-05-2003 à 13:59:46

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 13:58:03    

samuelp> Je confirme que c'est pas dû au tableau car une autre version sans la variable "tab_cat" a exactement le même problème.
 
HotShot>"C'est pas plutôt que ca serait du code M$-Internet Explorer-compliant" euh si c'est le cas c'est pas fait exprès, en quoi est-ce MS-Compliant?
 
les autres> J'ai pas compris grand chose à ce que vous racontez :D


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
Reply

Marsh Posté le 12-05-2003 à 13:58:03   

Reply

Marsh Posté le 12-05-2003 à 14:00:44    

Sh@rdar a écrit :

bon alors réfléchis 2 secondes à ce qu'il y a dans le cookie....
 
il n'y a pas les infos de session ! mais juste l'identifiant qui permettra de les récuperer sur le dd du serveur !
 
la sérialization ne touche pas au cookie du client ! le cookie est envoyer en début de session avec l'entête HTTP correspondante (celle qui provoque les erreurs en cas de sortie) la sérialization et l'écriture se font en fin de script et le cookie est généré depuis belle lurette !
 
je te retourne donc ta remarque : quand on sait pas on se tait !


 
  Veux tu qu'on en discute plus longuement ? Sais tu au moins programmer ? (on dirait pas) : le session_register c pas pour les chiens

Reply

Marsh Posté le 12-05-2003 à 14:00:46    

vérifies que tu n'as pas activé le blocage de cookie dans Moz
 
vérifie aussi que tu récupère bien ton id de session si passage par URL
 
tu dois récupérer obligatoirement un $_GET['nom_de_ta_session']


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 14:02:18    

samuelp a écrit :


 
  Veux tu qu'on en discute plus longuement ? Sais tu au moins programmer ? (on dirait pas) : le session_register c pas pour les chiens


 
[:plat00n] j'abandonne t'es trop bête


Message édité par Sh@rdar le 12-05-2003 à 14:02:35

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 14:02:56    

Sh@rdar> Cookies non bloqués, et pas de passage par URL :/


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
Reply

Marsh Posté le 12-05-2003 à 14:04:54    

Sh@rdar a écrit :


 
[:plat00n] j'abandonne t'es trop bête


 
Tu es borné, retournes faire du VB !

Reply

Marsh Posté le 12-05-2003 à 14:06:01    

refuse les cookies sous IE, si ça fait pareil qu'avec Moz tu connait le problème


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 14:09:10    

samuelp a écrit :


 
Tu es borné, retournes faire du VB !


 
pour commencer, lis les 3 premiers encadrés :
http://www.php.net/manual/en/funct [...] gister.php


---------------
...oups kernel error...
Reply

Marsh Posté le 12-05-2003 à 14:09:54    

HotShot a écrit :

En tout cas, je pars du principe que si qqch foire dans l'histoire, ça doit être IE... Mozilla qui supporterait pas un cookie :pt1cable:  


 
mozilla a des problèmes avec les cookies sans path...  
 
véridique j'ai eu le problème sur ma boutique en ligne.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 12-05-2003 à 14:11:58    

ethernal a écrit :


 
pour commencer, lis les 3 premiers encadrés :
http://www.php.net/manual/en/funct [...] gister.php
 


 
On peut pas troller 5 minutes ?  [:tapai]

Reply

Marsh Posté le 12-05-2003 à 14:14:44    

samuelp a écrit :


 
On peut pas troller 5 minutes ?  [:tapai]


:lol: :lol: si [:the grosminet] :D


---------------
...oups kernel error...
Reply

Sujets relatifs:

Leave a Replay

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