我正在寻找一种方法来检查PHP会话的生命周期,并返回会话“活着”的秒数。
是否有我错过的PHP函数?
答案 0 :(得分:6)
您可以存储会话初始化的时间并返回该值:
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 :(得分:3)
我认为有两种选择都不是很好,但在这里它们是。
1)如果您有权访问文件系统,则可以检查会话文件的创建时间戳。
2)将创建时间存储在会话中,例如
session_start();
if( ! isset($_SESSION['generated'])) {
$_SESSION['generated'] = time();
}
答案 2 :(得分:2)
您只需在会话中存储创建会话的时间戳