- Home
- Categorie
- Coding e Sistemistica
- PHP
- Distruggere sessione quando si chiude scheda
-
Distruggere sessione quando si chiude scheda
Salve a tutti .
volevo sapere se esiste un modo in PHP per poter distruggere una sessione qualora venga chiusa non la finestra del browser ( quello è automatico ) , ma quando ad esempio viene chiusa la scheda di firefox o internet explorer contenente una data pagina che ha creato appunto quella sessione .
Se ad esempio metto a fine pagina il classico "session_destroy" è pur vero che questo accadrà , ma nessun link contenuto in quella pagina funzionerà ..
Spero di essere stato chiaro .
Grazie mille
Tanaka
-
Purtroppo non esiste una tecnica che ti garantisca la chiusura della sessione alla chiusura della scheda.
Un modo piuttosto complesso potrebbe essere quello di controllare con Javascript la chiusura della scheda e quindi inviare una richiesta AJAX al server per cancellare la sessione. Ovviamente se il Javascript è disabilitato questa modalità non funziona
-
Grazie Gianni , sospettavo che php da solo non potesse essere adatto allo scopo ...
thanx !!
Tanaka
-
Puoi usare la funzione che determina il tempo di vita della sessione, in modo da "abbatterla" prima che venga chiusa la finestra.
La funzione oltre a determinare la vita, ne rinnova la scadenza se richiamata all'inizio di ogni pagina.
Però una volta abbattuta, la sessione non può essere rinnovata, questi meccanismi vengono utilizzati solitamente nei siti web dove la sicurezza è importante, come area utenti di una banca, oppure mail box online.session_set_cookie_params(<secondi>);
session_start();
-
Grazie mille !!
però in quel modo la sessione non viene distrutta anche dopo x tempo ?
cioè , non è possibile che in quel modo un utente si ritrovi in logout dopo un prestabilito tempo , quando magari non vorrebbe ?
ciao e grazie molte !!
-
Si questo è possibile, dopo la scadenza, la sessione viene distrutta. Questo serve ad eliminare dati quando un utente non esegue più nessuna operazione oppure non ha chiuso il browser.
Lasciando un margine molto elevato, come ad esempio 15 minuti, non si dovrebbe avere tutto questo problema.
Non so a cosa serva la pagina ma solitamente, è raro che una persona osservi una pagina per più di 5 minuti senza compiere un'operazione, come click su link o refresh.
Alternativa, quando esegue il login, l'utente è obbligato a selezionare da una lista prestabilita un valore temporale di validità della sessione.
-
Grazie , sei stato gentilissimo e chiarissimo !!!
Un ringraziamento di cuore
Tanaka
-
Prego