Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    53

    LOGOUT automatico alla chiusura della pagina

    Ciao a tutti,
    è possibile richiamare una pagina(o una funzione) di LOGOUT quando una pagina viene chiusa? Cioè se l'utente accidentalmente chiude la pagina o si dimentica di fare il LOGOUT, alla chiusura della pagina questa richiama automaticamente il LOGOUT (che andrà ad aggiornare il Database).
    Grazie.

  2. #2
    Devi usare javascript, rilevare l'evento di chiusura della pagina, e collegare a questo l'apertura di una pagina php che esegua le operazioni di logout
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Originariamente inviato da gm
    Devi usare javascript, rilevare l'evento di chiusura della pagina, e collegare a questo l'apertura di una pagina php che esegua le operazioni di logout
    ciao gm ma js è l'unico modo per fare una cosa del genere?
    mettiamo che l'utente on line sia rappresentato da un booleano nella tabella 'utenti' del db (attributo 'stato' 1<=online, 0<=offline),
    se l'utente ha i js disabilitati compare sempre on line!!

    cmq per hph c'era una discussione simile sul forum scripting:
    http://forum.html.it/forum/showthrea...hreadid=639649
    showthread.php?
    ..povero silvio, lui è sceso in campo..
    e lo ha fatto per noi...comunisti...

  4. #4
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    il discorso degli utenti online è approssimativo, di solito si considera offline un utente che non richiede una pagina entro un tot di tempo, ad esempio se dopo 15 min un utente non richiede una pagina molto probabilmente ha abbandonato il sito e quindi passa offline.

    Dovresti implementare un sistema di garbage collection che cancella gli utenti online che non richiedono pagine da più di un tot di tempo... tutto qui

  5. #5
    Originariamente inviato da kuarl
    il discorso degli utenti online è approssimativo, di solito si considera offline un utente che non richiede una pagina entro un tot di tempo, ad esempio se dopo 15 min un utente non richiede una pagina molto probabilmente ha abbandonato il sito e quindi passa offline.

    Dovresti implementare un sistema di garbage collection che cancella gli utenti online che non richiedono pagine da più di un tot di tempo... tutto qui
    quindi tu dici di stabilire un "tempo di durata della sessione" e fare un check su data/ore?mi sembra ragionevole!
    cmq non risolverebbe il problema del fatto che l'utente potrebbe dimenticarsi di fare il logout..
    ..povero silvio, lui è sceso in campo..
    e lo ha fatto per noi...comunisti...

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da mauri@como
    quindi tu dici di stabilire un "tempo di durata della sessione" e fare un check su data/ore?mi sembra ragionevole!
    cmq non risolverebbe il problema del fatto che l'utente potrebbe dimenticarsi di fare il logout..
    non so' come funziona il tuo sistema ma il mio è basato sulle sessioni, una sessione scade alla chiusura del browser quindi quando l'utente chiude il browser viene automaticamente disconnesso... se invece è basato sui cookie metti la scadenza a 0. Dal database, se registri gli utenti connessi, te ne liberi con una query che controlla periodicamente l'ora degli utenti connessi

  7. #7
    e come fai a rimuovere dal db una sessione che è scaduta?
    ..povero silvio, lui è sceso in campo..
    e lo ha fatto per noi...comunisti...

  8. #8
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    periodicamente, magari ad ogni caricamento di pagina, lanci una delete di questo tipo

    DELETE FROM userOnline WHERE (ultimoAccesso - NOW()) > 20*60

    se ultimoAccesso è una timestamp

  9. #9
    so che usualmente si fa come dici tu..
    però mi lascia sconcertato che se da certo momento in poi nessuno visita più il sito rimangono "online" un certo numero di utenti...


    insomma php non riesce a sapere quante delle sessioni che ha creato sono attive?
    ..povero silvio, lui è sceso in campo..
    e lo ha fatto per noi...comunisti...

  10. #10
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da mauri@como
    so che usualmente si fa come dici tu..
    però mi lascia sconcertato che se da certo momento in poi nessuno visita più il sito rimangono "online" un certo numero di utenti...


    insomma php non riesce a sapere quante delle sessioni che ha creato sono attive?
    si, ma non con precisione, come ti ho detto c'è un margine di errore anche abbastanza alto, php passa le sessioni alla sua garbage collection dopo 24 min di attività e le cancella valutando un fattore di probabilità interno... in ogni caso l'utente non potrà accedere più alla sessione (anche se ancora presente sul server) semplicemente chiudendo la finestra del browser.

    Tutto questo mantenendo le impostazioni predefinite del php.ini

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.