1

我使用 SimpleUsers 类并创建了一个基于数据库的登录系统。 这是 Github 上的 SimpleUsers

这是我的问题:如何在 Windows 关闭时终止 PHP 会话?当窗口关闭时,登录用户的会话尚未打开。我怎样才能关闭它?我试着用

session_set_cookie_params(0);

但这没有帮助。请帮我。

4

1 回答 1

1

我假设“窗口”是指浏览器的选项卡/网络浏览器的窗口。

简单的回答是:除非用户要求,否则您不能。您可以尝试使用“onclose”方法向您的站点发送请求以关闭会话的某种 javascript 代码。 这种方法的缺点是当某人有 2 个标签并且最后一个被关闭时,他将被注销

只有当有人点击注销按钮时,您才应该销毁会话。

编辑评论

如果您想将会话保护(绑定)到 IP,您可能希望将会话存储在$_SESSION启动会话的用户的 IP 中,并在 IP 更改时终止会话

if($_SESSION['user_ip'] !== $_SERVER['REMOTE_ADDR']){
    // do the code to terminate session.
}
于 2015-12-25T12:08:13.843 回答