Durée de vie d'une session - PHP - Programmation
Marsh Posté le 06-03-2006 à 14:49:10
une session est défini coté serveur par la config de PHP, un cookie est défini coté client.
Tu ne peux pas modifier ca. Ce que tu dosi faire c'est enregistrer un cookie qui va te relogguer sur le site quand tu reviens. Mais tu ne peux pas garder une session pendant 1 an
Marsh Posté le 06-03-2006 à 15:02:54
dac avec newneo, pour une session c'est fait pour expirer si tu n'est plus sur le site un certain temps, et heureusement d'ailleurs...
Après tu a en effet la solution "cookie" mais personnellement, je trouve ça un peu "dangereux" côté sécurité.
Marsh Posté le 06-03-2006 à 17:19:02
Normalement la session s'arrête une fois que le navigateur du client est fermé non ? Ne reste que les cookies, avec des précautions à prendre niveau sécurité effectivement...Sans compter qu'il faut que les users les acceptent.
Marsh Posté le 06-03-2006 à 17:20:57
réactiver une session à partir d'un cookie? et je fais ca comment, je dis à ma page, si le cookie existe, alors relance la session? ca fait un peu bricolage, non?
Marsh Posté le 06-03-2006 à 17:32:18
Yagmoth a écrit : Normalement la session s'arrête une fois que le navigateur du client est fermé non ? |
Rien à voir. La session est géré par le serveur et le serveur n'a aucun moyen de savoir si le navigateur à été fermé, si l'ordi à été déconecté du net ou a été éteint ou si le visiteur est simplement allé aux toilettes.
Le serveur ferme tout simplement la session aprés le déclenchement d'un "time out" et ça, ca peut arriver longtemps aprés la fermeture du navigateur ou plusieurs jours avant la fermeture du navigateur. (si si, ca m'est arrivé de garder mon navigateur ouvert plusieurs d'affilé)
Yagmoth a écrit : Ne reste que les cookies, avec des précautions à prendre niveau sécurité effectivement... |
Ca dépend de comment le cookie à été envoyé au navigateur. Si ca a été envoyé avec une date/heure de fin de validité, alors le cookie existera jusqu'a cette date/heure. Si le cookie a été envoyé sans date/heure de fin de validité alors il existera jusqu'a la fermeture du navigateur et sera détruit à ce moment là.
Yagmoth a écrit : Sans compter qu'il faut que les users les acceptent. |
Ca, c'est exact.
Marsh Posté le 06-03-2006 à 17:55:42
petite question supp: j'arrive pas à modifier la durée de vie de mon cookie de session... (meme pour la réduire)
on me dit de faire session_set_cookie_params($lifetime);
mais ca ne change rien....
pour tester, j'ai tenté une session de 10sec... sans résultats...
Marsh Posté le 06-03-2006 à 18:04:05
T'as tout fait comme indiqué dans la doc?
http://fr.php.net/manual/fr/functi [...] params.php
Ils disent de le mettre avant le "session_start()" et de le remettre dans chaque page où on veut changer la valeur normale de la durée du cookie de session.
Marsh Posté le 06-03-2006 à 18:08:48
ouai, j'ai planché la doc des milliers de fois...
en fait, je traine ce pb depuis des mois...
avant le session_start(), après ils te disent de ne pas mettre le time()+ (j'ai essayé avec les 2, ca ne change rien), ....
d'ailleurs, j'ai le meme pb avec les cookies... impossible qu'ils se terminent quand je le veux !
Marsh Posté le 06-03-2006 à 20:10:50
c'est pas session qu'il faut que tu utilises alors dans ton cas
mais $_COOKIE qui justement te permettra d'enregistrer un cookie sur le pc de l'utilisateur et de lire cette valeur
Marsh Posté le 06-03-2006 à 13:11:06
Je vous explique brievement. En fait, j'ai un site sur lequel il faut se logger à l'arrivée.
Ca fait plusieurs mois qu'il fonctionne bien, mais je n'ai toujours pas reussi à faire tenir une durée de session. En gros, à chaque fois que la personne se déconnecte, où au bout d'une certaine durée que je ne maitrise pas, il est nécessaire de se relogger.
Le code que j'ai mis en header dans chaque page est:
$lifetime = 3600*24*10;
session_set_cookie_params($lifetime);
session_start();
Est-ce que vous voyez une erreur?
Merci