-1

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

?>

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

4

3 回答 3

1

我们已经通过 cron 作业解决了这个问题,检查用户是否登录 5 分钟。谢谢你的所有想法=)

谁把这件事投了反对票?

于 2013-03-21T17:06:42.797 回答
0

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

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

于 2013-03-21T15:46:44.983 回答
0

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

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

来源 - K2xL

于 2013-03-21T15:47:22.593 回答