Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Un metodo per forzare il logout

    Ciao a tutti, stavo pensando ad un metodo per fare in modo che il logout venga fatto in ogni caso, soprattutto se l'utente chiude la finestra del browser senza cliccare sul mitico link omonimo.

    In ogni pagina, dove effettuo il session_start() e altre cosine relative alle sessioni potrei controllare che queste non siano scadute. Se lo sono, eseguo il codice del logout.
    Ovviamente è l'utente stesso che attiva i meccanismi ma non all'uscita, bensì al rientro dopo la scadenza della sua sessione.

    Può essere un metodo valido secondo voi?

  2. #2
    ma devi fare cose particolari al logout? perche altrimenti basta semplicemente far scadere le sessioni........

  3. #3
    Ciao pablobuello, sì ho la necessità di settare un flag "online" nel mio database relativo agli utenti.

  4. #4
    stai seguendo la strada sbagliata...

    se vuoi una tabella con gli utenti online devi accontentarti di una tabella approssimata con diciamo uno scarto di 5 min

    quando logghi o ripristini una sessione con utente loggato aggiungi/aggiorni una tablella contenente

    id_utente ( key )
    time timestamp (o quello ke preferisci per le date)

    per sapere gli utenti online fai una sql sulla tablella estraendo gli id con clausola "time > now - 5 minuti"

    non esistono procedure ke ti diano la garanzia ke venga effettuato il logout

  5. #5
    Originariamente inviato da _AnDrEa_1483
    non esistono procedure ke ti diano la garanzia ke venga effettuato il logout
    esattamente... per questo ti conviene non starci neanche troppo a pensarci... imposta il tutto con limiti relativamente bassi (ma cmq "usabili"... se li metti a 1 min, poi ad ogni pagina che visita l'utente dovrà rifare il login.......)

  6. #6
    Scusate se mi intrometto..ma come lo si imposta il tempo di fine sessione? Quindi non esiste un sistema per salvare sul db la data e l'ora di una sessione scaduta dopo che l'utente ha chiuso il proprio browser?


  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    no, perchè la sessione si basa su un id.

    L'id corrisponde ad un file che esiste sul server per un tempo prestabilito (di default diciamo che è 24 minuti, anche se poi la cancellazione non è detto che avvenga al 24 minuto perchè segue tutto un calcolo probabilistico).

    Se tu chiudi ad esempio una scheda del browser, e poi ti ricolleghi al sito, il cookie è ancora presente e ancora valido, e ti viene caricata la sessione.

    Il motivo di tutto questo discorso è che il protocollo http è stateless, cioè il server web dopo che ti ha fornito la pagina non sa se la stai visualizzando o se l'hai chiusa, la sessione ovvia a questo fatto tenendo un file attivo per tot minuti, in modo che se navighi un'area che richiede dei dati persistenti questi non vengano persi.

    Per quanto riguarda la possibilità di settare il tempo di durata della sessione esiste il comando ini_set, che ti permette di settare alcune delle opzioni riguardanti la configurazione del php.

    Questa discussione potrebbe darti qualche spunto in più per capire:

    http://forum.html.it/forum/showthrea...2#post11870812


  8. #8
    Grazie mille Gianiz per le tue pronte delucidazioni! ;D

    Saluti


  9. #9
    nota: nessuno vieta a qualcuno di implementarsi il proprio gestore delle sessioni che non sia quello di php implementando funzionalità avanzate come ad esempio proprio quella della tracciabilità dell'utente e cosi via

  10. #10
    Ciao ragazzi, spunti interessanti come al solito

    La questione online 1/0 nel db mi serve per fare dei controlli in una paginetta di statistiche, per capire al volo quanti utenti sono online e quanti offline.

    Bella pe' tutto

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.