Creando un sistema di autenticazione in Php mi sono accorto che, dopo essermi autenticato tramite username e password, le pagine protette erano accessibili anche dopo ore, senza andare automaticamente in timeout.
Come invertire, quindi, questa tendenza?
Documentandomi sul web ho trovato poche righe di codice che fanno al caso nostro.
// set timeout period in seconds $inactive = 600;
// 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: logout.php"); } }
$_SESSION['timeout'] = time();
Devono essere inserite dopo l’inizializzazione della sessione, fatta tramite il comando session_start().
In pratica si imposta il timeout in secondi (in questo caso corrispondente a 10 minuti), si controlla se la sessione timeout è settata e, nel caso lo fosse, si calcola la durata della sessione e la si confronta con il timeout precedentemente impostato.
Nel caso in cui la durata fosse superiore, si rimanda ad un pagina di logout.
Se, al contrario, la sessione di timeout non fosse settata, la si imposta con l’orario corrente, tramite il comando time().
Testato e funzionante 😉
Fonte: daniweb
And you work a sunday morning! ;>
Testing WordPress scheduling feature 😉