La meilleure option est de ne pas utiliser un indicateur actif/non actif dans la base de données, mais plutôt d'utiliser quelque chose comme un last_active
horodatage. Lorsque l'utilisateur accède à une page, mettez à jour l'horodatage sur CURRENT_TIMESTAMP()
. Et pour déterminer si l'utilisateur est actuellement actif, interrogez WHERE active_timestamp < TIMESTAMPADD(MINUTE, -60, CURRENT_TIMESTAMP())
Assurez-vous de définir active_timestamp
en tant que DATETIME
tapez dans la structure du tableau. (ALTER TABLE users ADD COLUMN active_timestamp datetime AFTER username'
)
Le problème ici est que votre script semble vouloir expulser l'utilisateur lorsque la session est inactive. Pour cela, vous devez regarder JavaScript, définir une minuterie qui compte à rebours sur 1 heure et s'il n'y a pas d'activité, rediriger la page.