Utilizzando sessions è un buon modo per fare questo, ed è un metodo molto comune per il controllo di autenticazione.
Il flusso di solito simile a questa:
- User visite in loco, e session_start() si chiama. Un identificatore di sessione univoco è impostato per quel visitatore (ad esempio un cookie).
- utente invia le sue credenziali di accesso ad un modulo di accesso
- Credenziali di accesso sono verificate, e questo fatto viene memorizzato nei dati di sessione con
$_SESSION['logged_in'] = true
, o qualcosa di simile
- Per il resto del tempo dell'utente sul sito, può controllare
$_SESSION['logged_in']
per vedere se l'utente si è connesso.
al fine di controllare gli accessi di un utente, si potrebbe semplicemente avere un campo in un database (users
tavolo va bene) che indica quanto la corrente ID di sessione viene (recuperata con session_id()
) per l'utente e se non corrisponde al valore del cookie si t ricevuto, quindi si chiama immediatamente session_destroy()
per quell'id e si considera l'utente come disconnesso.
L'utilizzo di $_SESSION
significa che non devi preoccuparti di generare i tuoi token e di avere la potenza dei superglobali incorporati per facilitare la memorizzazione delle informazioni sullo stato di autenticazione dell'utente.
Personalmente, consentirò a più sessioni di essere attive per un utente per la maggior parte dei siti web, poiché di solito non c'è una buona ragione per non farlo, ma ovviamente dipende dalla natura del sito. Tuttavia, memorizzare l'id della sessione attiva corrente come menzionato sopra è un modo abbastanza semplice per ottenere questo risultato.
La memorizzazione dell'ID di sessione nel database è ancora migliore. – TravisO
Anche questo funzionerebbe, TravisO :) – Sampson