2015-12-13 31 views
6

Questa probabilmente è una domanda piuttosto semplice. Ne ho trovate decine di simili, chiedendo come generalmente accorciare o estendere la durata della sessione in PHP. Io so come raggiungere ciò, il mio script PHP si legge come questo:PHP: resetta la durata della sessione su ricarica

ini_set('session.gc_maxlifetime', 3600); 
session_set_cookie_params(3600); 
session_start(); 

Questa imposta mie sessioni di timeout dopo 3600 secondi. E questo è fondamentalmente ciò che accade, quando apro un sito web in cui devo accedere, posso lavorare con esso per esattamente un'ora, quindi tutti i dati della sessione vengono eliminati e devo effettuare nuovamente l'accesso.

Tuttavia, questo non è il comportamento che mi aspetterei. Voglio che le mie sessioni scadano dopo un'ora di inattività. Quindi, quando apro per la prima volta il mio sito web alle 10:00, faccio qualcosa fino alle 10:45, quindi dovrebbe scadere alle 11:45, non alle 11:00 come ora.

Qualche suggerimento su come raggiungere questo obiettivo?

+0

Bene, devi anche usare le sessioni per questo compito. Potresti semplicemente aggiornare il cookie sul pageload nel tuo modello. Se l'ultima ricarica è precedente a 3600, distruggerete la sessione. Ma come vedi ha i suoi lati negativi (deve essere eseguito ogni volta) –

risposta

8

usare al posto di session_set_cookie_params ->setcookie

invece

session_set_cookie_params(3600); 
session_start(); 

uso questo e lo chiamano in ogni pagina del tuo sito web

$lifetime=3600; 
session_start(); 
setcookie(session_name(),session_id(),time()+$lifetime); 

aggiornerà sessione data di scadenza del cookie su ogni esecuzione fino a time()+$lifetime data

+2

Grazie, ha funzionato come un fascino! – user3205494