我正在尝试在php中编写自动会话超时功能,目前,这就是我所拥有的
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1200)) {
// last request was more than 20 minutes ago
// destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
此技术取决于用户在收到页面过期通知之前加载页面,我需要检查页面加载。
我需要一个在用户加载页面的天气到期之前。这是因为当会话到期时会通知登录到站点的其他用户,并且数据会记录在数据库中以供进一步使用。
答案 0 :(得分:1)
这是一个非常复杂的主题,但您可以管理实现会话处理程序接口和数据库处理程序。
在PHP配置中检查session.gc_maxlifetime和session.cookie_lifetime
这是一篇关于会话设置的非常好的文章:How do I expire a PHP session after 30 minutes?
使用这些方法创建实现SessionHandlerInterface和session_set_save_handler()的数据库层。
教程: http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL
最后,您可以随时查询数据库以获得离线和在线用户。