Non c'è bisogno di usare le sessioni. Basta creare una colonna nella tabella users
del database se un utente ha effettuato l'accesso o meno. Controlla da lì.
La colonna può essere denominata LoggedIn
e può essere un enum ('Yes','No')
. Inoltre, conservare il momento del login in qualche colonna LastLoggedIn
Così, quando un utente vuole accedere, prima verifica:
select 1 from users where ID = {$UserID} and `LoggedIn` = 'No'
Se una riga viene restituita, lo lasciò/il suo accesso.
Se qualcuno si dimentica di disconnettersi:
Eseguire un job di cron o script che ripristinare lo stato LoggedIn
dopo un determinato periodo di tempo di utenti che hanno effettuato l'accesso per più di qualche ora controllando LastLoggedIn
tempo.
Vuole assicurarsi che un utente abbia effettuato l'accesso da non più di un PC, vale a dire di invalidare altre sessioni quando l'utente ha una nuova sessione. @ Karem, correggimi se ti ho sbagliato. – aularon
Se qualcuno si dimentica di disconnettersi, potrebbe essere bloccato in modo permanente. E a meno che non si tenga traccia dell'ora dell'ultimo accesso, un processo cron disconnetterebbe gli utenti che erano ancora attivi. – cHao
cHao proprio quello che pensavo .. e io non voglio che .. – Karem