0

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

我有一个登录、注销脚本

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

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

如果该变量为 1 并且其他人尝试登录,他们将无法登录。

但我的问题是,如果有人在不注销的情况下关闭了窗口。变量保持为 1,因此他们无法登录。

4

2 回答 2

0

首先,您需要考虑准备好语句,因为您的代码目前容易受到 sql 注入的影响。

作为问题的答案,请尝试以下操作:

  1. 使用会话,因为您需要捕获浏览器关闭的事件,会话将持续到浏览器打开。
  2. 如果不是会话,则使用 javascript 捕获关闭事件(谷歌如何做),然后将 ajax 请求发送到 PHP 脚本,该脚本将更新 DB 中的所需字段
于 2013-02-04T23:01:42.110 回答
0

作为GGio的补充;

使用类似这样的 jQuery (JS) 函数

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

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

所以要小心你放在那里的代码,因为你不能检查输出或要求用户验证。

更多信息:

onbeforeunload 事件上的 jQuery.ajax 不起作用

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

于 2013-02-04T23:04:17.107 回答