Expiration de session

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

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