Expiration de session

scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009 - 2 mai 2008 à 09:24
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009 - 3 mai 2008 à 11:32
Bonjour,

J'ai décidé de permettre aux utilisateurs de mon site de se souvenir de garder leurs sessions ouvertes durant quelques heures voici le code mis en place.

Dans index.php

session_set_cookie_params($_COOKIE['auth'],"/");
session_start();

Dans authentification.php

if($remind==1)//cookie si l'utilisateur veut garder ca session ouverte
                {
                    setcookie("auth",time()+86400,time()+86400,"/");
                }
                else
                {
                    setcookie("auth","0",time()+86400,"/");
                }
                //DEMARAGE DE LA SESSION !!!!!
                session_set_cookie_params($_COOKIE['auth'],"/");
                session_start();

Or pour une raison obscur cela ne fonctionne pas, la session s'ouvre bien mais elle dure que le temps d'ouverture du navigateur...

Merci pour votre aide :)

8 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mai 2008 à 10:32
Hello,

ça, ça modifie le cookie de session, celui qui se trouve côté client. Mais il y a aussi le fichier de session côté serveur (celui qui contient les données) qui lui est nettoyé par défaut par le garbage collector toutes les 24mn d'inactivité. A mon avis, ton problème vient de là.
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
2 mai 2008 à 10:41
Pourtant dés que je ferme la fenetre aprés authentification ma session est détruite et le cookies coté client ne semble pas affecté par la commande session_set_cookie_params($_COOKIE['auth'],"/"); (au vu de la duré de vie du cookies PHPSSID  dans firefox qui vaut " à la fin de la session")
Par contre avant l'authentification j'ai mes params:
Array ( [lifetime] => 0 [path] => / [domain] => [secure] => [httponly] => )
aprés:
Array ( [lifetime] => 1209803838 [path] => / [domain] => [secure] => [httponly] => )

lorsque je ferme le navigateur:

mes variables de session sont détruite mais j'ai toujours:
Array ( [lifetime] => 1209803838 [path] => / [domain] => [secure] => [httponly] => )

Bref je suis perdu
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mai 2008 à 10:54
C'est ce que je t'ai dit. Modifie le session.gc_maxlifetime.
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
2 mai 2008 à 11:07
Merci pour ton aide,

J'ai mis session.gc_maxlifetime = 36000

Même résultat... :'(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mai 2008 à 12:23
Moi je n'ai jamais eu de problème pour faire ça.
Essaye de passer ta valeur en dur dans session_set_cookie_param() au lieu de récupérer celle du cookie, pour voir.
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
2 mai 2008 à 16:17
Hum aprés plusieur test (infructueux) je constate que même avec la valeur en dur, le cookie phpssid est détruit a la fermeture de session :'(
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
2 mai 2008 à 17:31
Bonsoir,
Tous compte fais, l'intergration en dur du timestamp semble fonctionner, il semble qu'il ne veux pas me prendre le timestamp contenu dans mon cookie :'(
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
3 mai 2008 à 11:32
Bonjour,

Voici mes conclusions: authentification.php n'été pas dans le même dossier que index.php et n'était pas inclu dans celui-ci , a chaque appel de la session dans authentification.php, ma durée de vie de mon cookies été modifié, j'ai donc inclu authenticifation.php dans l'index et je n'est donc plus qu'un appel à session_start () dans l'index ...

Ceci semble fonctionner, mais je ne comprend pas pourquoi j'ai rencontré ce problème, une idée ?

Merci
0
Rejoignez-nous