OVH Cloud OVH Cloud

Duree de vie d'une session

1 réponse
Avatar
Sylvain
Bonjour,

je cherche un moyen de fermer une session (de connexion) quand
l'utilisateur se fait rien sur son navigateur.

J'ai configurer l'option "session.cookie_lifetime = 1800" pour fermer
une session au bout de 30 mn. Mais je souhaite faire la même chose
SEULEMENT si l'utilisateur n'utilise plus son navigateur.

Comme dois-je procéder ?

1 réponse

Avatar
frederic girard
Sylvain wrote:
Bonjour,

je cherche un moyen de fermer une session (de connexion) quand
l'utilisateur se fait rien sur son navigateur.

J'ai configurer l'option "session.cookie_lifetime = 1800" pour fermer
une session au bout de 30 mn. Mais je souhaite faire la même chose
SEULEMENT si l'utilisateur n'utilise plus son navigateur.

Comme dois-je procéder ?
Tu dois prendre le probleme autrement:

A la dernière page affichée tu mets en session le timestamp courant.
Ensuite, a la prochaine requete de ton utilisateur tu récupères cette
variable de session et tu compares avec le timestamp courant, la
différence des deux te donneras si oui ou non il a dépassé le temps que
tu lui auras imparti.

session_start();
$delta_time = 300; // 5 minutes
if(!empty($_SESSION['user_time'])){
$new_delta = time()- $_SESSION['user_time'];
if( $new_delta > $delta_time ) echo "Délais de connexion expirée!";

}else{
$_SESSION['user_time'] = time();
}

Bon je fais ca a l'arrache, mais l'algo devrait etre bon.