退出时运行php脚本

时间:2013-02-04 22:57:49

标签: php mysql

当有人点击X时,有没有办法在浏览器或窗口关闭时调用php脚本。

我有登录,退出脚本

$sql2 = "UPDATE `users` SET `loggedin` = '1' WHERE `username` = '$username' AND `password` = '$password' LIMIT 1 ";

将SQL变量更改为1或0,让我知道该人是否已登录。

如果该变量为1且其他人试图登录,则他们无法进行。

但我的问题是,如果有人在没有退出的情况下关闭窗口。变量 保持为1,因此无法登录。

2 个答案:

答案 0 :(得分:0)

首先,您需要考虑准备好语句,因为截至目前,您的代码很容易受到SQL注入攻击。

回答问题时,请尝试以下方法:

  1. 使用会话,因为您需要捕获浏览器关闭事件,会话直到浏览器打开。
  2. 如果不是会话使用javascript来捕捉结束事件(谷歌如何做),然后发送ajax请求到PHP脚本,将更新数据库中的所需字段

答案 1 :(得分:0)

作为GGio的补充;

使用类似jQuery(JS)函数的东西

$(function () {
  $("a").click(function {
    window.onbeforeunload = null;
  });
});

在该函数中进行AJAX调用。当进行调用并且浏览器关闭时,服务器仍将处理它,只有没有客户端将其发送回。

因此,请注意您放在那里的代码,因为您无法检查输出或要求用户进行验证。

更多信息:

jQuery.ajax on onbeforeunload event not working

http://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-or-tab-closed-event/

http://zeeshanumardotnet.blogspot.co.at/2011/01/how-to-end-session-when-browser-is.html