我在Stack Overflow上遇到过许多答案,说明JavaScript在浏览器关闭时无法检测到的问题。在大多数情况下,这是事实,但我发现下面的代码似乎能够检测到浏览器关闭。
window.onbeforeunload = function(){
$.ajax({
type: "POST",
url: "logout.php"
});
}
在一个完美的世界中,用户可以自行登出,也可以闲置足够长时间自动登出,但情况并非总是如此。
因此,当用户关闭浏览器时,我使用上面的代码调用logout.php脚本。
这是我的问题:当浏览我的网站时,似乎总是随机,上面的脚本被调用,用户当然会被注销。
我可以在它发生之前导航到一个页面或来回浏览多个页面。有时登录时会立即调用它,我甚至无法进入该站点。
我无法弄清楚为什么会发生这种情况,特别是随机发生。
添加logout.php脚本:
<?php
include ('include/sessions.php');
$update = "UPDATE users SET lastlogoutdate = NOW(), currentlyloggedin = 'N' WHERE username = '$username'";
$updateQuery = mysqli_query($dbc, $update);
session_destroy();
header('Location: index.php');
?>
答案 0 :(得分:-1)
此声明可能对您或某人有帮助
window.onbeforeunload = function(){
if(event.clientX <=0 || event.clientY <=0)
{
$.ajax({
type: "POST",
url: "logout.php"
});
}
}
只有当用户点击[X]按钮
时才会发生注销