Y a-t-il une option pour détruire une session si l'utilisateur n'effectue aucune action en 10 minutes? P>
6 Réponses :
session_start();
// 10 mins in seconds
$inactive = 600;
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive) {
session_destroy();
header("Location: logoutpage.php");
}
$_SESSION['timeout']=time();
The code above was taken from this particular page.
C'est tellement (Stackoverflow) Style de poster le code directement, puis Lien vers la source B>. De cette façon dans quelques années si la source ferme votre réponse est toujours utile. Mais n'oubliez pas de lier!
@Frankie S'il vous plaît assurez-vous de le modifier correctement la prochaine fois. Vous avez supprimé une partie du lien, ce qui rend le point à un fil complètement différent!
Essayez de définir le délai de session à 10 minutes.
ini_set('session.gc_maxlifetime',10);
Où devrais-je mettre cette ligne de code dans session.php?
Comparez les horodatages entre deux demandes, une de la demande actuelle, une fois stockée dans la session. P>
J'ai modifié la réponse ci-dessus et cela fonctionne bien:
// inactive in seconds
$inactive = 10;
if( !isset($_SESSION['timeout']) )
$_SESSION['timeout'] = time() + $inactive;
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location:index.php"); }
$_SESSION['timeout']=time();
y compris le JavaScript suivant de la page provoquera une vérification de l'inactivité en appelant la fonction checkidletime () code> chaque seconde. Activité sur la page Réinitialise _idlesecondscounter code> à 0.
Bien que ce code puisse répondre à la question, fournir des informations sur la manière et expliquer pourquoi il résout le problème améliore sa valeur à long terme.
Je l'ai fait avec le code suivant:
//10 min
if( !isset($_SESSION['logout']) ){
$_SESSION['logout'] = strtotime('+10 minutes', time());
}
if( time() > $_SESSION['logout'])
{
session_destroy();
header("Location: index.php");
}else{
$_SESSION['logout'] = strtotime('+10 minutes', time());
}
//echo date('Y/m/d h:i:s',$_SESSION['logout']);
//echo $_SESSION['logout'];