对事件使用 javascript 函数
window.onbeforeunload = myLogoutFunction;
注意:此 javascript 在浏览器崩溃时不起作用。
有一个 user_log 数据库表并在其中填写登录和“注销”日期。
当有用户未更新注销日期时,您可以认为他的连接有问题。
$where = " AND `users_id`='".$response['userfound']['id']."'";
$where .= " AND `logoffdatetime`='0000-00-00 00:00:00'";
24 分钟后 php 会话消失(默认 php.ini 设置)。用处不大。但是你仍然可以保存到 user_log 表中。
您不需要刷新数据库。
通过数据库保持聊天用户活跃是个坏主意。而是使用一个带有时间戳的小文件。
这里有一些其他有用的提示
检测用户是否在没有注销的情况下返回
$user_navigates = false;
if(isset($_SERVER['HTTP_REFERER']) && basename($_SERVER['HTTP_REFERER']) != _PAGE)
$user_navigates = true;
将页面刷新也保存到会话中
if(isset($_GET['pagerefreshed']))
$_SESSION['pagerefreshed'] = $_GET['pagerefreshed'];
将注销的 user_id 保存到会话中,以便您可以使用它来恢复。例如不需要重新加载页面。
$_SESSION['loggedout']['user_id'] == $login->user_id