L'opzione migliore è non usare un flag attivo/non attivo nel database, ma piuttosto usare qualcosa come un last_active
timestamp. Quando l'utente accede a una pagina, aggiorna il timestamp a CURRENT_TIMESTAMP()
. E per determinare se l'utente è attualmente attivo, interroga WHERE active_timestamp < TIMESTAMPADD(MINUTE, -60, CURRENT_TIMESTAMP())
Assicurati di impostare active_timestamp
come DATETIME
digitare nella struttura della tabella. (ALTER TABLE users ADD COLUMN active_timestamp datetime AFTER username'
)
Il problema qui è che il tuo script sembra voler espellere l'utente quando la sessione è inattiva. Per questo, dovresti guardare JavaScript, impostare un timer che conta alla rovescia su 1 ora e, se non c'è attività, reindirizzare la pagina.