Page 1 sur 1

Ptit question sur les sessions

Posté : 31 mai 2005, 15:17
par arno77
Peut t'on definir un durée de vie à une session c'est à dire detruire toutes les session au bout de 24h.

Posté : 31 mai 2005, 15:31
par manuscle
Je crois que tu peux le définir dans le php.ini
sinon faut faire un script
Mais normalement lorsque tu ferme le navigateur, la session s'efface automatiquement, à part si elle est rappellé d'après un cookie. Dans ce cas c'est sur le cookie qu'il faut définir la durée.

Posté : 31 mai 2005, 15:34
par ant
Oui tu peux définir un time out pour tes sessions et, c'est conseillé d'ailleurs même si tu implémentes un systeme de destruction de session à la déconnexion du client.

Exemple:
session_start();
$_SESSION['dernier_acces'] = time();
dans une page tu définis le timeout:
 
$timeout = 300;
et dans les pages ou tu ouvres des sessions, tu vérifies par exemple de cette façon :
if(time() - $_SESSION['dernier_acces'] > $timeout) {
    session_destroy();
     // etc
}
 
edit: attention la session n'est pas détruite à la fermeture de la page mais elle est conservée pendant un certain temps jusqu'à échéance définie par le timer dans le php.ini, après quoi elle est détruite.
Donc sans déconnexion explicite de la part de l'utilisateur, le seul recours est un timer scripté comme celui ci-dessus

Posté : 31 mai 2005, 15:41
par arno77
J'ai resolu le problème mais quel peut être le danger si il n'y a pas de time out :?:

Posté : 31 mai 2005, 15:45
par ant
Lis mon edit : )
la session est conservée pendant un certain temps, et quelqun d'autre peut éventuellement l'utiliser jusqu'à sa destruction.

Posté : 31 mai 2005, 15:50
par arno77
ok et merci pour l'info