A melhor opção é não usar um sinalizador ativo/não ativo no banco de dados, mas usar algo como um
last_active
carimbo de data/hora. Quando o usuário acessar uma página, atualize o timestamp para CURRENT_TIMESTAMP()
. E para determinar se o usuário está ativo no momento, consulte WHERE active_timestamp < TIMESTAMPADD(MINUTE, -60, CURRENT_TIMESTAMP())
Certifique-se de definir
active_timestamp
como DATETIME
digite na estrutura da tabela. (ALTER TABLE users ADD COLUMN active_timestamp datetime AFTER username'
) O problema aqui é que seu script parece querer expulsar o usuário quando a sessão está ociosa. Para isso, você deve olhar para o JavaScript, definir um cronômetro que faça uma contagem regressiva de mais de 1 hora e se não houver atividade, redirecione a página.