当用户使用 jQuery 的 POST 函数离开页面时,我试图基本上将数据库中的布尔“在线”条目切换为 0。我的问题是该条目没有在数据库中切换为 0 。通过调试,我可以看到它永远不会在 isset($_POST['logout']) 之后执行,所以只要我没有拼写错误,它似乎永远不会发布到服务器。
我猜这与 onbeforeunload 有关,因为我有一个类似于此的简单登录脚本可以正常工作。
JavaScript
window.onbeforeunload = function() {
$.post("server.php",{logout:1,currentuser:currentuser});
}
服务器.php
if (isset($_POST['logout'])) {
$currentuser = $_POST['currentuser'];
mysqli_query($con,"UPDATE players SET online = 0 WHERE user = '$currentuser'");
}