首先,这是PHP 的相关问题:在线离线状态 但由于我的方法略有不同并且问题也很大,所以我认为新问题会更好。
现在我在 qa_users 表中添加了一个名为“online”的列,它插入/更新记录时间并在用户交互时保持更新(我不确定它是否正确)
现在它会在用户登录后立即在线显示用户,但问题是在注销后他们保持显示状态为在线并且永远不会进入离线状态。
我认为我的时间比较条件代码有问题,但我不知道。
请在下面找到我正在使用的代码。
$loggedtime = date('Y-m-d h:i:s', time()-300); // 5 minutes
$query = 'SELECT userid, handle, online FROM ^users ORDER BY userid ASC';
$result = qa_db_query_sub($query);
while($ids = mysql_fetch_array($result)){
$online = $ids['online'];
$userid = qa_get_logged_in_userid();
if(qa_is_logged_in()){
$update = 'UPDATE ^users SET online = NOW() WHERE userid = '.$userid.'';
qa_db_query_sub($update);
}
$time = $ids['online'];
if ($time >= $loggedtime){ // i have tried with $loggedtime > $time too
echo '<li>'.$ids['handle'].' online</li>';
} else {
echo '<li>'.$ids['handle'].' offline</li>';
}
}