【发布时间】:2009-03-07 17:59:26
【问题描述】:
我正在寻找一种方法来检查 PHP 会话的生命周期,并返回会话“活动”的秒数。
有没有我遗漏的 PHP 函数?
【问题讨论】:
我正在寻找一种方法来检查 PHP 会话的生命周期,并返回会话“活动”的秒数。
有没有我遗漏的 PHP 函数?
【问题讨论】:
您可以存储会话初始化的时间并返回该值:
session_start();
if (!isset($_SESSION['CREATED'])) {
$_SESSION['CREATED'] = time();
}
对于从任意会话中检索该信息:
function getSessionLifetime($sid)
{
$oldSid = session_id();
if ($oldSid) {
session_write_close();
}
session_id($sid);
session_start();
if (!isset($_SESSION['CREATED'])) {
return false;
}
$created = $_SESSION['CREATED'];
session_write_close();
if ($oldSid) {
session_id($oldSid);
session_start();
}
return time() - $created;
}
【讨论】:
我认为有两个选项都不是很好,但是他们在这里。
1) 如果您有权访问文件系统,则可以检查会话文件上的创建时间戳。
2) 将创建时间存储在会话中,例如
session_start();
if( ! isset($_SESSION['generated'])) {
$_SESSION['generated'] = time();
}
【讨论】:
您可以简单地将创建会话的时间戳存储在会话中
【讨论】: