Ptit question sur les sessions

Eléphant du PHP | 130 Messages

31 mai 2005, 15:17

Peut t'on definir un durée de vie à une session c'est à dire detruire toutes les session au bout de 24h.

Eléphant du PHP | 149 Messages

31 mai 2005, 15:31

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.
"Si tu travailles avec un marteau-piqueur pendant un tremblement de terre, désynchronise-toi, sinon tu travailles pour rien."
JC Vandamme.

ant
Eléphant du PHP | 161 Messages

31 mai 2005, 15:34

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
Modifié en dernier par ant le 31 mai 2005, 15:44, modifié 1 fois.

Eléphant du PHP | 130 Messages

31 mai 2005, 15:41

J'ai resolu le problème mais quel peut être le danger si il n'y a pas de time out :?:

ant
Eléphant du PHP | 161 Messages

31 mai 2005, 15:45

Lis mon edit : )
la session est conservée pendant un certain temps, et quelqun d'autre peut éventuellement l'utiliser jusqu'à sa destruction.

Eléphant du PHP | 130 Messages

31 mai 2005, 15:50

ok et merci pour l'info