Ignore_User_Abort(true)通过Ajax将PHP文件卸载到PHP

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的变体,但是没有运气。有什么我失踪了吗?

+0

我连接到我键入的数据库...连接到数据库。我测试了我的连接字符串,它很好。也许不能通过Ajax调用带有ignore_user_abort的php页面? – user175328 2012-01-05 19:39:21

我很困惑,为什么你想要使用jquery加载这种类型的页面,当你想要做的只是简单地将某人注销时使用一些重定向。

坚持这样:

  • 过期会话(如果你想确保有人退出后,到期 后15分钟没有活动,等等;)

  • 有一个注销按钮只需调用一个处理您的注销数据库更新的PHP页面即可。

从我上面看到的,你使过程过于复杂,最终破裂或不可靠。我的假设是,你只是想在页面卸载后强制登出某人。

+0

感谢您的评论 - 当用户注销时,我实际上希望将值1设为NULL。原因是我可以让数据库根据谁登录时执行特定的语句。当某人登录时,数据库使用1更新用户帐户。当他们离开页面时,数据库应该更新帐户具有NULL值。 – user175328 2012-01-05 19:36:19

+0

请将表定义添加到您的问题。您可能会在此处为列类型做错误的事情。 – hakre 2012-01-05 19:42:55