在浏览器关闭时执行MySQL查询

时间:2013-03-21 15:36:04

标签: php javascript mysql

当用户关闭浏览器时,我正在尝试执行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(); 

?>

但这也不起作用。有人有任何工作的例子吗? 当浏览器关闭时,我真的必须从数据库中删除帖子。

3 个答案:

答案 0 :(得分:1)

我们用cron作业解决了这个问题,如果用户登录则检查5分钟。 谢谢你的所有想法=)

谁投了这个东西?

答案 1 :(得分:0)

与您的评论澄清相关,通过拥有与用户的浏览器和会话不断通信的代码,您可以识别某人何时“在线”。许多与此相关的旧方法,特别是对于PHP,使用数据库表来更新用户的打开会话的“上次查看”值。如果他们在X分钟内没有被“看到”,它会认为他们是“离线”的。如前所述,使用AJAX等,你可以做得更好。

正如其他人所说,你正在使用的这种方法并不可靠,不应该以这种方式进行。

答案 2 :(得分:0)

您可以尝试使用Javascript执行此操作并检查窗口关闭事件,但是由浏览器决定是否支持。

您可以做的是创建一个表来记录人们访问您的站点时,然后运行一个cron作业来检查他们更改页面后的时间。如果超过X分钟,则将该用户的状态设置为离线。

  

来源 - K2xL