2009-10-19 9 views
0

HI, J'ai le code pour la session time out mais je ne sais pas quel est le problème son ne fonctionne pas quelqu'un pls regarder cela et m'aider. Voici le code:Session expirer en PHP

$inactive = 10; 

    // check to see if $_SESSION['timeout'] is set 

    if(isset($_SESSION['timeout'])) { 

    $session_life = time() - $_SESSION['timeout']; 

    if($session_life > $inactive) 

    { 
     session_destroy(); 
     header("Location: logoutpage.php"); } 
    } 

    $_SESSION['timeout'] = time(); 

Merci.

+6

Comment ça ne marche pas? Quel comportement observez-vous qui est différent de ce que vous attendez de voir? – Amber

+0

Avez-vous session_start() avant ce code? – Greg

Répondre

4

le time() variable renvoie l'heure actuelle mesurée en nombre de secondes écoulées depuis l'époque Unix (1er janvier 1970 00:00:00 GMT). Votre variable $ inactive implique que vous souhaitez conserver les sessions ouvertes pendant 10 minutes, mais vous trouverez peut-être plus pratique de passer en secondes pour rester cohérent avec l'utilisation de la fonction time().

// set inactive to 10 minutes (in seconds) 
$inactive = 600; 

if (!empty($_SESSION['timeout'])) { 

    // set session life to current time minus timeout 
    $session_life = time() - $_SESSION['timeout']; 

    // check if your session life is greater than 10 minutes 
    if ($session_life > $inactive) { 
     session_destroy(); 
     header("Location: logoutpage.php"); 
     die; 
    } 

} 

$_SESSION['timeout'] = time(); 
+2

Je suis sûr que le code affiché dans la question montre où $ _SESSION ['timeout'] est défini. Plus précisément, la dernière ligne. – Amber

+0

Avais-je raison au sujet des sessions de 10 minutes? Si c'est le cas, cela devrait corriger cet aspect de votre code. Vous devrez nous faire savoir si vous rencontrez encore d'autres problèmes. –