使用ajax或当浏览器退出PHP时自动注销


Auto-logout using ajax or when browser is exited PHP

使用ajax,我可以让用户在同一页面停留10秒后注销。请记住,这10秒只是用于测试目的。但是,如果用户在10秒结束之前关闭浏览器,他们不会注销。我想过在他们退出浏览器时注销他们,但我还没有弄清楚怎么做,即使我这样做了,退出他们的浏览器需要什么?如果他们只是关闭了一个选项卡,而其他选项卡还在打开,这算不算?如果他们同时打开2个、3个或更多的浏览器怎么办?如何确定所有打开的浏览器在注销之前都已退出?

test1.php

<?php
include('ajax.php');
sleep(10);
?>
<html>
<body onload = "ajax('test2.php','output',10000)">
<div id="output" />
</body>
</html>

test2.php

<?php
include('connect.php');
include('functions.php');
ud("login = 'false'/userLogin/where username = '$username'");
?>

onBeforeUnload事件应该为您工作。

它涵盖:

  • 关闭一个选项卡(不管打开了多少个选项卡)
  • 退出浏览器
  • 从页面导航离开
  • 刷新页面

您可以将其用作内联属性,或触发ajax函数来通知服务器。有几种方法来完成你正在寻找,但我必须指出,我从来没有尝试过你正在尝试。我只是根据我所读到的关于这件事的资料说的。

这里还有一些关于SO的其他来源。

希望这对你有帮助!