php 会话超时时执行一些事件
Perform some event when php session timeout
我用 jquery 'onbeforeunload' 尝试过,但失败了,因为 jquery 即使在刷新页面时也执行了该操作。
我想做的就是,在任何用户关闭他的浏览器或 computer.So 我知道他已经登录之前执行数据库功能 out.I 想要添加类似 facebook 的功能 "Logged in from other devices" ,用从其他设备强制注销。
在 system/libraries/session 你会发现这一行
// Is the session current?
if (($session['last_activity'] + $this->sess_expiration) < $this->now)
{
$this->sess_destroy();
return FALSE;
}
你可以做任何事情如果。
无法在 JavaScript 中捕获浏览器关闭事件。您可以尝试使用 web socket 和 CRON 作业来实现您的需求。
对于web socket,您可以获取特定用户的总连接数,如果连接数变为0,则表示该用户关闭了您的web app的所有页面(window或标签)。此外,您需要记住互联网断开连接,因此,您需要使用 CRON 作业,此 CRON 作业必须 运行 每特定分钟(例如:15 分钟),以便如果用户丢失连接15 分钟后,您必须自动注销该用户。
如果你没有像用户必须在闲置几分钟后断开连接这样的规则,那么你可以简单地使用网络套接字。
我用 jquery 'onbeforeunload' 尝试过,但失败了,因为 jquery 即使在刷新页面时也执行了该操作。 我想做的就是,在任何用户关闭他的浏览器或 computer.So 我知道他已经登录之前执行数据库功能 out.I 想要添加类似 facebook 的功能 "Logged in from other devices" ,用从其他设备强制注销。
在 system/libraries/session 你会发现这一行
// Is the session current?
if (($session['last_activity'] + $this->sess_expiration) < $this->now)
{
$this->sess_destroy();
return FALSE;
}
你可以做任何事情如果。
无法在 JavaScript 中捕获浏览器关闭事件。您可以尝试使用 web socket 和 CRON 作业来实现您的需求。
对于web socket,您可以获取特定用户的总连接数,如果连接数变为0,则表示该用户关闭了您的web app的所有页面(window或标签)。此外,您需要记住互联网断开连接,因此,您需要使用 CRON 作业,此 CRON 作业必须 运行 每特定分钟(例如:15 分钟),以便如果用户丢失连接15 分钟后,您必须自动注销该用户。
如果你没有像用户必须在闲置几分钟后断开连接这样的规则,那么你可以简单地使用网络套接字。