我四处寻找如何使用ignore_user_abort(true)功能来执行Update-Sql语句,但似乎无法使其正常工作。
这是我所拥有的:
来自.html
<body onUnload="winClose()"></body>
来自.js(ajax)
... var queryString = "?id=" + id;
xmlhttp.open("GET", "signoff.php" + queryString, true);
来自签名.php
<?php
ignore_user_abort(true);
set_time_limit(0);
... connect to DB
$id = $_GET['id'];
mysql_query("UPDATE Login_Table SET signed_in = '' WHERE login_id = '$id'");
mysql_close($con);
?>
我可以通过警告queryString来验证ajax连接是否正常工作,变量是否正在传递,但是sql语句没有执行。我尝试了ignore_user_abort的一些变体,但没有成功。有什么东西我遗漏了吗?
我很困惑为什么你想用jquery加载这种页面,当你只想让某人注销时,使用一些重定向。
坚持这个:
-
过期会话(如果要确保有人注销,请过期15分钟后无活动等;)
-
有一个注销按钮,它只调用一个PHP页面来处理注销数据库更新。
从我上面看到的情况来看,你会让这个过程变得过于复杂,最终会崩溃或不可靠。我的假设是,您只想在页面卸载后将某人强制注销。