• User Attivo

    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


  • User Newbie

    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

    :ciauz:


  • User Attivo

    Grazie Gianni , sospettavo che php da solo non potesse essere adatto allo scopo ...

    thanx !!

    🙂

    Tanaka


  • User Attivo

    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();


  • User Attivo

    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 !!

    🙂


  • User Attivo

    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.


  • User Attivo

    Grazie , sei stato gentilissimo e chiarissimo !!!

    Un ringraziamento di cuore

    Tanaka

    🙂


  • User Attivo

    Prego 😉