Je suis confronté à un problème de session sous PHP 5.2.5 et après m'etre
arraché les cheveux pendant plusieurs jours, je me décide à soliciter vos
conseils et vos expériences.
Je développe un site web avec une partie administration. Il faut bien
entendu se loguer pour y acceder. Je stocke le login et le password (haché)
dans des variables de sessions. Si ces variables de session sont fausses ou
n'existent pas, je suis redirigé sur la page de login. Jusque ici rien de
bien particulier.
Après une identification, je suis confronté à une perte de ma session de
manière totalement aléatoire. Certain jour, je vais rester connecté toute la
journée sans problème, d'autre fois, 2 ou 3 deconnection après seulement
quelques minutes à me balader dans l'espace d'admin !
Mon identifiant de session (NEEETSESSID) est passé via un cookie.
Paramètre de mon serveur apache/php (localhost)
WinXP
PHP : 5.2.5
Apache : 2.2.6
==========
voici mes paramètres sessions dans mon php.ini (v 5.2.5) :
=========
Voici mon initialisation de session dans mes scripts php (avant bien entendu
tout envoi du serveur vers le client)
session_name("NEEETSESSID");
$lifetime = 3600 * 10; //10h de durée de vie, le temps de developper le site
session_set_cookie_params($lifetime);
/* Démarre la session */
session_start();
==========
Enfin en analysant les entetes HTTP transitant entre le client et le
serveur, je constate que le cookies de session n'a pas été envoyé par
firefox au serveur lors d'une deconnection accidentelle.
#Exemples 1) Tous va bien :
#Requete FIREFOX=>serveur PHP
Enfin, en regardant dans firefox mes cookies, lorsque je suis bien connecté
et donc avant deconnection, je retrouve mon cookie de session :
Nom : NEEETSESSID
Contenu : 3hvn3oj98vkt3355fg5oct90i2
Hôte : localhost
Chemin : /
Envoi pour : Tout type de connexion
expire : jeudi 25 septembre 2008 21:19:37
Ce cookies est bien entendu modifié lors d'une deconnection.
================
Je constate également après une deconnection non solicitée que mes fichiers
de session dans le repertoire tmp du serveur apache sont toujours présents
(sess_3hvn3oj98vkt3355fg5oct90i2), mais visiblement plus valide du point de
vue de PHP, alors que je leur avais donné une durée de vie de 10h lors de
leur création.
Je rencontre aussi ce problème avec internet explorer. Ces deux navigateurs
acceptent bien entendu les cookies.
J'insite sur le caractère ALEATOIRE du problème. Certains jours, tout se
passe très bien.
Mes questions : Est ce un problème PHP ? Est un *bug* du garbage collector
des sessions qui supprimerait mes sessions? Est ce un bug plutot des
navigateurs qui pour une raison que je ne comprend pas, refuseraient parfois
d'envoyer le cookies de session.
Si vous avez quelques pistes, conseils, critiques etc... Je suis preneur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yanick
J'ai déjà rencontré ce problème dans le passé (random session lost) et cela était dû au fait que les navigateurs ne peuvent stockés qu'un nombre défini de cookies.
Si ton javascript sauvegarde plus de ce nombre, le plus ancien cookie (en l'occurence "sessid") sera remplacé par le suivant, telle une liste LIFO
Si tel est ton problème, mon conseil est de voir à sérialiser tes cookies de manière à stocker plus d'une information dans un même cookie de session par le même principe de "url-ification" : var1=val1&var2=val2&...
yanick
On 25 sep, 06:48, Karkov wrote:
Bonjour,
Je suis confronté à un problème de session sous PHP 5.2.5 et après m'etre arraché les cheveux pendant plusieurs jours, je me décide à soliciter vos conseils et vos expériences. Je développe un site web avec une partie administration. Il faut bien entendu se loguer pour y acceder. Je stocke le login et le password (haché) dans des variables de sessions. Si ces variables de session sont fausses ou n'existent pas, je suis redirigé sur la page de login. Jusque ici rien de bien particulier.
Après une identification, je suis confronté à une perte de ma session de manière totalement aléatoire. Certain jour, je vais rester connecté toute la journée sans problème, d'autre fois, 2 ou 3 deconnection après seulement quelques minutes à me balader dans l'espace d'admin !
Mon identifiant de session (NEEETSESSID) est passé via un cookie.
Paramètre de mon serveur apache/php (localhost)
WinXP PHP : 5.2.5 Apache : 2.2.6
========> voici mes paramètres sessions dans mon php.ini (v 5.2.5) :
=======> Voici mon initialisation de session dans mes scripts php (avant bien entendu tout envoi du serveur vers le client)
session_name("NEEETSESSID");
$lifetime = 3600 * 10; //10h de durée de vie, le temps de developper le site session_set_cookie_params($lifetime);
/* Démarre la session */ session_start();
========> Enfin en analysant les entetes HTTP transitant entre le client et le serveur, je constate que le cookies de session n'a pas été envoyé par firefox au serveur lors d'une deconnection accidentelle.
#Exemples 1) Tous va bien : #Requete FIREFOX=>serveur PHP
==============> Enfin, en regardant dans firefox mes cookies, lorsque je suis bien connecté et donc avant deconnection, je retrouve mon cookie de session :
Nom : NEEETSESSID Contenu : 3hvn3oj98vkt3355fg5oct90i2 Hôte : localhost Chemin : / Envoi pour : Tout type de connexion expire : jeudi 25 septembre 2008 21:19:37
Ce cookies est bien entendu modifié lors d'une deconnection.
==============> Je constate également après une deconnection non solicitée que mes fichiers de session dans le repertoire tmp du serveur apache sont toujours présents (sess_3hvn3oj98vkt3355fg5oct90i2), mais visiblement plus valide du point de vue de PHP, alors que je leur avais donné une durée de vie de 10h lors de leur création.
Je rencontre aussi ce problème avec internet explorer. Ces deux navigateurs acceptent bien entendu les cookies.
J'insite sur le caractère ALEATOIRE du problème. Certains jours, tout se passe très bien.
Mes questions : Est ce un problème PHP ? Est un *bug* du garbage collector des sessions qui supprimerait mes sessions? Est ce un bug plutot des navigateurs qui pour une raison que je ne comprend pas, refuseraient parfois d'envoyer le cookies de session.
Si vous avez quelques pistes, conseils, critiques etc... Je suis preneur.
En vous remerciant d'avance pour votre aide.
Mickaël
J'ai déjà rencontré ce problème dans le passé (random session lost) et
cela était dû au fait que les navigateurs ne peuvent stockés qu'un
nombre défini de cookies.
Si ton javascript sauvegarde plus de ce nombre, le plus ancien cookie
(en l'occurence "sessid") sera remplacé par le suivant, telle une
liste LIFO
Si tel est ton problème, mon conseil est de voir à sérialiser tes
cookies de manière à stocker plus d'une information dans un même
cookie de session par le même principe de "url-ification" :
var1=val1&var2=val2&...
yanick
On 25 sep, 06:48, Karkov <nos...@toto.com> wrote:
Bonjour,
Je suis confronté à un problème de session sous PHP 5.2.5 et après m'etre
arraché les cheveux pendant plusieurs jours, je me décide à soliciter vos
conseils et vos expériences.
Je développe un site web avec une partie administration. Il faut bien
entendu se loguer pour y acceder. Je stocke le login et le password (haché)
dans des variables de sessions. Si ces variables de session sont fausses ou
n'existent pas, je suis redirigé sur la page de login. Jusque ici rien de
bien particulier.
Après une identification, je suis confronté à une perte de ma session de
manière totalement aléatoire. Certain jour, je vais rester connecté toute la
journée sans problème, d'autre fois, 2 ou 3 deconnection après seulement
quelques minutes à me balader dans l'espace d'admin !
Mon identifiant de session (NEEETSESSID) est passé via un cookie.
Paramètre de mon serveur apache/php (localhost)
WinXP
PHP : 5.2.5
Apache : 2.2.6
========>
voici mes paramètres sessions dans mon php.ini (v 5.2.5) :
=======> Voici mon initialisation de session dans mes scripts php (avant bien entendu
tout envoi du serveur vers le client)
session_name("NEEETSESSID");
$lifetime = 3600 * 10; //10h de durée de vie, le temps de developper le site
session_set_cookie_params($lifetime);
/* Démarre la session */
session_start();
========> Enfin en analysant les entetes HTTP transitant entre le client et le
serveur, je constate que le cookies de session n'a pas été envoyé par
firefox au serveur lors d'une deconnection accidentelle.
#Exemples 1) Tous va bien :
#Requete FIREFOX=>serveur PHP
==============>
Enfin, en regardant dans firefox mes cookies, lorsque je suis bien connecté
et donc avant deconnection, je retrouve mon cookie de session :
Nom : NEEETSESSID
Contenu : 3hvn3oj98vkt3355fg5oct90i2
Hôte : localhost
Chemin : /
Envoi pour : Tout type de connexion
expire : jeudi 25 septembre 2008 21:19:37
Ce cookies est bien entendu modifié lors d'une deconnection.
==============>
Je constate également après une deconnection non solicitée que mes fichiers
de session dans le repertoire tmp du serveur apache sont toujours présents
(sess_3hvn3oj98vkt3355fg5oct90i2), mais visiblement plus valide du point de
vue de PHP, alors que je leur avais donné une durée de vie de 10h lors de
leur création.
Je rencontre aussi ce problème avec internet explorer. Ces deux navigateurs
acceptent bien entendu les cookies.
J'insite sur le caractère ALEATOIRE du problème. Certains jours, tout se
passe très bien.
Mes questions : Est ce un problème PHP ? Est un *bug* du garbage collector
des sessions qui supprimerait mes sessions? Est ce un bug plutot des
navigateurs qui pour une raison que je ne comprend pas, refuseraient parfois
d'envoyer le cookies de session.
Si vous avez quelques pistes, conseils, critiques etc... Je suis preneur.
J'ai déjà rencontré ce problème dans le passé (random session lost) et cela était dû au fait que les navigateurs ne peuvent stockés qu'un nombre défini de cookies.
Si ton javascript sauvegarde plus de ce nombre, le plus ancien cookie (en l'occurence "sessid") sera remplacé par le suivant, telle une liste LIFO
Si tel est ton problème, mon conseil est de voir à sérialiser tes cookies de manière à stocker plus d'une information dans un même cookie de session par le même principe de "url-ification" : var1=val1&var2=val2&...
yanick
On 25 sep, 06:48, Karkov wrote:
Bonjour,
Je suis confronté à un problème de session sous PHP 5.2.5 et après m'etre arraché les cheveux pendant plusieurs jours, je me décide à soliciter vos conseils et vos expériences. Je développe un site web avec une partie administration. Il faut bien entendu se loguer pour y acceder. Je stocke le login et le password (haché) dans des variables de sessions. Si ces variables de session sont fausses ou n'existent pas, je suis redirigé sur la page de login. Jusque ici rien de bien particulier.
Après une identification, je suis confronté à une perte de ma session de manière totalement aléatoire. Certain jour, je vais rester connecté toute la journée sans problème, d'autre fois, 2 ou 3 deconnection après seulement quelques minutes à me balader dans l'espace d'admin !
Mon identifiant de session (NEEETSESSID) est passé via un cookie.
Paramètre de mon serveur apache/php (localhost)
WinXP PHP : 5.2.5 Apache : 2.2.6
========> voici mes paramètres sessions dans mon php.ini (v 5.2.5) :
=======> Voici mon initialisation de session dans mes scripts php (avant bien entendu tout envoi du serveur vers le client)
session_name("NEEETSESSID");
$lifetime = 3600 * 10; //10h de durée de vie, le temps de developper le site session_set_cookie_params($lifetime);
/* Démarre la session */ session_start();
========> Enfin en analysant les entetes HTTP transitant entre le client et le serveur, je constate que le cookies de session n'a pas été envoyé par firefox au serveur lors d'une deconnection accidentelle.
#Exemples 1) Tous va bien : #Requete FIREFOX=>serveur PHP
==============> Enfin, en regardant dans firefox mes cookies, lorsque je suis bien connecté et donc avant deconnection, je retrouve mon cookie de session :
Nom : NEEETSESSID Contenu : 3hvn3oj98vkt3355fg5oct90i2 Hôte : localhost Chemin : / Envoi pour : Tout type de connexion expire : jeudi 25 septembre 2008 21:19:37
Ce cookies est bien entendu modifié lors d'une deconnection.
==============> Je constate également après une deconnection non solicitée que mes fichiers de session dans le repertoire tmp du serveur apache sont toujours présents (sess_3hvn3oj98vkt3355fg5oct90i2), mais visiblement plus valide du point de vue de PHP, alors que je leur avais donné une durée de vie de 10h lors de leur création.
Je rencontre aussi ce problème avec internet explorer. Ces deux navigateurs acceptent bien entendu les cookies.
J'insite sur le caractère ALEATOIRE du problème. Certains jours, tout se passe très bien.
Mes questions : Est ce un problème PHP ? Est un *bug* du garbage collector des sessions qui supprimerait mes sessions? Est ce un bug plutot des navigateurs qui pour une raison que je ne comprend pas, refuseraient parfois d'envoyer le cookies de session.
Si vous avez quelques pistes, conseils, critiques etc... Je suis preneur.
En vous remerciant d'avance pour votre aide.
Mickaël
Karkov
Bonjour,
Un grand merci avec quelques jours de retard. En regardant le nombre de mes cookies, effectivement le problème venait de là : J'utilise également sur mon projet le module tafeltree qui me générait pas loin de 50 cookies. Ajouté à mes propres cookies et je dépassais alors les 50 ! Finalement, en empechant tafeltree de générer des cookies j'ai réglé le problème !
Bon, ce n'étais pas un problème PHP finalement, désolé pour le HS. Cependant j'ai appris quelque chose aujourd'hui :o).
Bonjour,
Un grand merci avec quelques jours de retard. En regardant le nombre de mes
cookies, effectivement le problème venait de là : J'utilise également sur
mon projet le module tafeltree qui me générait pas loin de 50 cookies.
Ajouté à mes propres cookies et je dépassais alors les 50 !
Finalement, en empechant tafeltree de générer des cookies j'ai réglé le
problème !
Bon, ce n'étais pas un problème PHP finalement, désolé pour le HS. Cependant
j'ai appris quelque chose aujourd'hui :o).
Un grand merci avec quelques jours de retard. En regardant le nombre de mes cookies, effectivement le problème venait de là : J'utilise également sur mon projet le module tafeltree qui me générait pas loin de 50 cookies. Ajouté à mes propres cookies et je dépassais alors les 50 ! Finalement, en empechant tafeltree de générer des cookies j'ai réglé le problème !
Bon, ce n'étais pas un problème PHP finalement, désolé pour le HS. Cependant j'ai appris quelque chose aujourd'hui :o).