Expiration de session

Fermé
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 27 sept. 2010 à 14:54
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 28 sept. 2010 à 11:24
Bonjour,
Je suis actuellement en train de réaliser un site internet, et je voudrais qu'une page soit inactive au bout d'un certain temps.
Si par exemple l'utilisateur n'a pas navigué sur sa page depuis 10 min, que cela le redirige automatiquement vers la page d'authentification.
Alors j'ai essayé de changer mon php.ini en changeant la valeur session.gc_maxlifetime à 100 qui vident donc mes sessions au bout de 100 secondes, et donc dans mon code j'ai mis :
if (($_SESSION['mdp_users'] == "") && ($_SESSION['login_users'] == ""))

Mais ca n'a pas l'air de fonctionner.
Merci de vos réponses

3 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
27 sept. 2010 à 17:05
c'est vrai que c'est ce qui semblerait logique. ceci dit, je sais que la politique de suppression des sessions en PHP est notament basée sur un paramètre aléatoire...

ce que tu peux faire, c'est stocker l'heure de la dernière activité dans uen variable de session, et faire toi meme la comparaison entre la deernière activité et l'heure actuelle
0
il y a aussi le solution javascript, qui ne nécessite aucune donnée stocker
function maFonction(){
     document.location.href = 'maPage.php';
}
setintervat(maFonction(), 1000 * 60 * 10);
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
28 sept. 2010 à 09:19
Ah oui j'essayerai comme ca :)
Euh question toute bête
1000 * 60 *10 correspond à quelle temps en secondes ? (enfin pourquoi * 10 ?)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
Modifié par Nabla's le 28/09/2010 à 10:11
si tu veux faire u ntruc autour des session, fais le en utilisant les sessions, pas en utilisant du javascript qui peut etre désactivé par l'utilisateur...

J'ai pas testé le code ci dessous, mais a mon avis ca devrait pas etre bien lon de la solution à adopter...

session_start(); 
if (isset($SESSION['last_activity']) and $SESSION['last_activity'] > time() - (60 * 10)) 
    $SESSION['last_activity'] = time(); 
else 
    session_destroy();
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
28 sept. 2010 à 09:35
Oui c'est vrai j'avais pas pensée à ce que le javascript soit désactivé...
A quoi correspond time ?
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
28 sept. 2010 à 10:10
time correspond à l'heure courrante en secondes depuis le 01/01/1970

heu, je vais faire une tite modif dans le if ... j'ai fait une boulette je croi ...
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
28 sept. 2010 à 10:24
Oui en effet c'est time() et non time ;)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
28 sept. 2010 à 11:14
en meme temps, à 9h27 du matin, tu ne croyais quand meme pas que je pouvais coder du php sans erreur san sl'aide d'un analyseur syntaxique, si ?
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
28 sept. 2010 à 11:24
En effet c'est pardonnable lol ;)
Merci de ton aide.
Je testerai sa très vite :)
0