problème avec les sessions (expiration)
9 messages
• Page 1 sur 1
- vin-moi
- WRInaute occasionnel

- Messages: 391
- Inscription: 22 Nov 2004
problème avec les sessions (expiration)
Bonjour,
voilà mon problème : j'utilise des sessions. l'id de session est transmis par cookies (mode par défaut) , cookies qui expire à la fermeture du navigateur.
j'ai regardé un peu dans les infos PHP, et le session.gc_maxlifetime est à sa valeur par défaut, c'est à dire 1440 S ( 24 minutes).
donc, sur la page de connexion, j'enregistre en variable de session le pseudo du membre .
Après, sur chaque page, j'initialise la session :
Ensuite, je vérifie que la variable pseudo est bien définie :
Si elle n'est pas définie, je conclue que c'est un simple visiteur et je detruit la session créée :
Le soucis est :
je me connecte, et j'ai beau attendre 1 heure, 2 heure, je suis toujours connecté au site tant que j'ai pas fermé le navigateur ... auriez vous une idée ? merci d'avance !
voilà mon problème : j'utilise des sessions. l'id de session est transmis par cookies (mode par défaut) , cookies qui expire à la fermeture du navigateur.
j'ai regardé un peu dans les infos PHP, et le session.gc_maxlifetime est à sa valeur par défaut, c'est à dire 1440 S ( 24 minutes).
donc, sur la page de connexion, j'enregistre en variable de session le pseudo du membre .
Après, sur chaque page, j'initialise la session :
- Code: Tout sélectionner
session_cache_limiter('private, must-revalidate');
session_start();
Ensuite, je vérifie que la variable pseudo est bien définie :
if(!empty($_SESSION['pseudo'])) .
Si elle n'est pas définie, je conclue que c'est un simple visiteur et je detruit la session créée :
else
{
session_unset();
session_destroy();
}
Le soucis est :
je me connecte, et j'ai beau attendre 1 heure, 2 heure, je suis toujours connecté au site tant que j'ai pas fermé le navigateur ... auriez vous une idée ? merci d'avance !
- pedouille
- WRInaute discret

- Messages: 85
- Inscription: 24 Mai 2005
Petit rappel sur le fonctionnement du garbage-collector des sessions en PHP :
A chaque lancement de session (session_start()), PHP tire un nombre au hasard entre 0 et 99, et si ce nombre est inférieur au paramètre session.gc_probability alors le garbage-collector élimine les fichiers de session trop vieux : on entend par "trop vieux", les sessions dont l'inactivité en seconde est supérieure à session.gc_maxlifetime.
Ce qui veux dire, dans ton cas, que le paramètre à prendre en compte est aussi session.gc_probability. Lors de tes tests, y'a-t-il d'autres utilisateurs qui utilisent ton site ? Si ce n'est pas le cas, le problème vient de la : dans la mesure où si aucun utilisateur ne déclenche le session_start(), le garbage-collector n'est jamais démarré, et par conséquent, ta session est toujours valide, même un siècle après.
Voila, j'espère que c'est ça et bon courage !
A chaque lancement de session (session_start()), PHP tire un nombre au hasard entre 0 et 99, et si ce nombre est inférieur au paramètre session.gc_probability alors le garbage-collector élimine les fichiers de session trop vieux : on entend par "trop vieux", les sessions dont l'inactivité en seconde est supérieure à session.gc_maxlifetime.
Ce qui veux dire, dans ton cas, que le paramètre à prendre en compte est aussi session.gc_probability. Lors de tes tests, y'a-t-il d'autres utilisateurs qui utilisent ton site ? Si ce n'est pas le cas, le problème vient de la : dans la mesure où si aucun utilisateur ne déclenche le session_start(), le garbage-collector n'est jamais démarré, et par conséquent, ta session est toujours valide, même un siècle après.
Voila, j'espère que c'est ça et bon courage !
- vin-moi
- WRInaute occasionnel

- Messages: 391
- Inscription: 22 Nov 2004
merci beaucoup pour l'explication
effectivement je suis seul à faire mes tests
le session.gc_probability est à 1 chez moi :p
par contre, j'ai pas bien saisis l'utilité de choisir un nombre au hasard ?
[edit] bon alors j'ai fait un test :
je me suis connecté, j'ai attendu plus de 24 minutes sans changer de page (inactif donc ...). Après, j'ai fait connecté quelqu'un, et au niveau de mon fichier de session, il ne s'est pas supprimé, mais sa date de modification est passé à la meme date que la connexion de l'autre personne ... vous avez une idée ?
le session.gc_probability est à 1 chez moi :p
par contre, j'ai pas bien saisis l'utilité de choisir un nombre au hasard ?
[edit] bon alors j'ai fait un test :
je me suis connecté, j'ai attendu plus de 24 minutes sans changer de page (inactif donc ...). Après, j'ai fait connecté quelqu'un, et au niveau de mon fichier de session, il ne s'est pas supprimé, mais sa date de modification est passé à la meme date que la connexion de l'autre personne ... vous avez une idée ?
- pedouille
- WRInaute discret

- Messages: 85
- Inscription: 24 Mai 2005
Ca dépend de ce que tu apelles "autre personne" ?
Une autre adresse IP / Port, ou un autre compte propre à ton site web (genre un compte phpBB) avec la même IP ?. Dans le deuxième cas, pour PHP, il s'agit du même ordinateur, et donc de la même session. Ce qui explique qu'il ait simplement rafraîchi la session existante.
Pour le coup de tirer un nombre au hasard, ca sert à régler la fréquence de garbage-collection en fonction du nombre d'utilisateur, mais il faut faire un peu de math (probabilités pour etre exact) pour expliciter convenablement ce fonctionnement.
Une autre adresse IP / Port, ou un autre compte propre à ton site web (genre un compte phpBB) avec la même IP ?. Dans le deuxième cas, pour PHP, il s'agit du même ordinateur, et donc de la même session. Ce qui explique qu'il ait simplement rafraîchi la session existante.
Pour le coup de tirer un nombre au hasard, ca sert à régler la fréquence de garbage-collection en fonction du nombre d'utilisateur, mais il faut faire un peu de math (probabilités pour etre exact) pour expliciter convenablement ce fonctionnement.
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Sessions: problème sessions deux erreurs qui se contredisent
- Problème de sessions
- Problème de sessions avec 1and1
- [règlé] probleme d erreur sessions
- problème avec les sessions PHP
- Problème indexation : duplicate content et identifiants de sessions - Zent Cart
- Probleme Choix de toutes les regions si pas de sessions cookies
- Expiration et transfert ...
- Différences dates expiration who.is
- Racheter un domaine à expiration ?
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


