当用户关闭浏览器时,我正在尝试执行MySQL查询。 我已经设法使用onbeforeunload但它只适用于Chrome并且关闭标签时。
然后我尝试了这个PHP示例:
<?php
include "db/dbc.php";
ignore_user_abort(true);
ob_end_clean();
echo "Testing connection handling";
if (connection_status() == 1){
mysql_query("DELETE FROM online WHERE id='55'");
}
echo "test";
flush();
?>
但这也不起作用。有人有任何工作的例子吗? 当浏览器关闭时,我真的必须从数据库中删除帖子。
答案 0 :(得分:1)
我们用cron作业解决了这个问题,如果用户登录则检查5分钟。 谢谢你的所有想法=)
谁投了这个东西?
答案 1 :(得分:0)
与您的评论澄清相关,通过拥有与用户的浏览器和会话不断通信的代码,您可以识别某人何时“在线”。许多与此相关的旧方法,特别是对于PHP,使用数据库表来更新用户的打开会话的“上次查看”值。如果他们在X分钟内没有被“看到”,它会认为他们是“离线”的。如前所述,使用AJAX等,你可以做得更好。
正如其他人所说,你正在使用的这种方法并不可靠,不应该以这种方式进行。
答案 2 :(得分:0)
您可以尝试使用Javascript执行此操作并检查窗口关闭事件,但是由浏览器决定是否支持。
您可以做的是创建一个表来记录人们访问您的站点时,然后运行一个cron作业来检查他们更改页面后的时间。如果超过X分钟,则将该用户的状态设置为离线。
来源 - K2xL