【发布时间】:2013-10-13 11:07:18
【问题描述】:
我在互联网上找到了很多教程,当你在某个限制后过期会话时,比如在 30 分钟左右之后,但是我想在没有活动的情况下使会话过期, 引用一个著名的 SO 问题the solution 是直截了当的:
if (isset($_SESSION['LAST_ACTIVITY'])
&& (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
// last request was more than 30 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
但是我必须在每个请求上更新$_SESSION['LAST_ACTIVITY'] 吗?
预先假设的答案是肯定的,但我有一个包含 200 多个 php 页面的大网站,而且每次请求都更新 $_SESSION['LAST_ACTIVITY'] 很忙。
还有其他方法吗?所有文件中唯一的共同点是一个用于数据库连接的配置文件。
【问题讨论】:
-
搜索每次出现的
session_start()并在其后添加代码。更好:将您的代码 sn-p 推送到一个函数或更好的类中,并且只调用该类。
标签: php session cookies session-variables session-cookies