Timeout sur inactivité

Signaler
Messages postés
14
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2011
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
Bonjour,

J'ai un site fait en php, avec un système de login classique utilisant les variables de session.

Mais je voudrais mettre un timeout sur l'inactivité d'un utilisateur, c'est-à-dire que je voudrais que l'utilisateur soit redirigé vers la page de login si il n'a rien fait sur le site depuis 10minutes.

J'ai essayé en paramétrant le php.ini, en mettant :
session.cookie_lifetime = 600
session.gc_maxlifetime = 600

Donc cela marche dans le sens où au bout de 10 minutes je suis bien redirigé vers la page de login, mais je suis redirigé vers cette page même si je fais des choses sur le site pendant ces 10 minutes.

Est ce que j'ai oublié des paramètres dans php.ini ?
Est ce que cela se configure dans httpd.conf d'apache ?

Merci

1 réponse

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

En gardant cette manière de faire, tu devrais pouvoir t'en sortir en utilisant session_regenerate_id() à chaque action de l'utilisateur. A tester, ce n'est pas sûr que ça fonctionne.

Après tu peux stocker quelque aprt un temps limite d'utilisation. À chaque action :
1. Tu récupère ce temps limite et regarde s'il est dépassé.
2. Si le temps est dépassé, tu détruit la session et redirige l'user. Si le temps n'est pas dépassé, tu le met à jour avec le temps courant.

Tout ceci se fais très simplement avec un DateTime ou un timestamp. Pour stocker tu n'as que l'embaras du choix : variable de session, base de donnée ou autre. Bien entendu il ne faut pas oublier serialize() si on stock un DateTime :)