Ignore_User_Abort(true)通过Ajax将PHP文件卸载到PHP
我搜索了如何使用ignore_user_abort(true)功能来允许更新Sql语句执行,但似乎无法使其工作。Ignore_User_Abort(true)通过Ajax将PHP文件卸载到PHP
以下是我有:
从html的
<body onUnload="winClose()"></body>
从.js文件(阿贾克斯)
... var queryString = "?id=" + id;
xmlhttp.open("GET", "signoff.php" + queryString, true);
从signoff.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);
?>
我可以验证ajax连接是否正常并通过提醒queryString传递变量,但是sql语句未执行。我尝试了一些ignore_user_abort的变体,但是没有运气。有什么我失踪了吗?
我很困惑,为什么你想要使用jquery加载这种类型的页面,当你想要做的只是简单地将某人注销时使用一些重定向。
坚持这样:
过期会话(如果你想确保有人退出后,到期 后15分钟没有活动,等等;)
有一个注销按钮只需调用一个处理您的注销数据库更新的PHP页面即可。
从我上面看到的,你使过程过于复杂,最终破裂或不可靠。我的假设是,你只是想在页面卸载后强制登出某人。
感谢您的评论 - 当用户注销时,我实际上希望将值1设为NULL。原因是我可以让数据库根据谁登录时执行特定的语句。当某人登录时,数据库使用1更新用户帐户。当他们离开页面时,数据库应该更新帐户具有NULL值。 – user175328 2012-01-05 19:36:19
请将表定义添加到您的问题。您可能会在此处为列类型做错误的事情。 – hakre 2012-01-05 19:42:55
我连接到我键入的数据库...连接到数据库。我测试了我的连接字符串,它很好。也许不能通过Ajax调用带有ignore_user_abort的php页面? – user175328 2012-01-05 19:39:21