Expiration de session

Melooo Messages postés 1476 Statut Membre -  
Melooo Messages postés 1476 Statut Membre -
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

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  2. Siluni
     
    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
    1. Melooo Messages postés 1476 Statut Membre 84
       
      Ah oui j'essayerai comme ca :)
      Euh question toute bête
      1000 * 60 *10 correspond à quelle temps en secondes ? (enfin pourquoi * 10 ?)
      0
  3. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
    1. Melooo Messages postés 1476 Statut Membre 84
       
      Oui c'est vrai j'avais pas pensée à ce que le javascript soit désactivé...
      A quoi correspond time ?
      0
    2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
    3. Melooo Messages postés 1476 Statut Membre 84
       
      Oui en effet c'est time() et non time ;)
      0
    4. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
    5. Melooo Messages postés 1476 Statut Membre 84
       
      En effet c'est pardonnable lol ;)
      Merci de ton aide.
      Je testerai sa très vite :)
      0