php会话生存期始终为0

时间:2015-09-05 10:04:51

标签: php session lifetime

我正在使用此代码在我的所有页面和登录页面中设置会话生存时间

session_set_cookie_params(time()+120);
session_start();

当我print_r session_get_cookie_params我得到了这个

Array ( [lifetime] => 1441447767 [path] => / [domain] => [secure] => [httponly] => )

但是会话在关闭网页后立即到期,当我再次打开它时,我被重定向到登录页面。那么,只要用户不断浏览网站,设置会话生存期的正确方法是什么,以保持计算新生命周期。例如,如果会话生存期为120秒,它将不会过期,除非用户已关闭网页并且在120秒内没有返回,但如果他在这120秒内返回网站,会话将再次开始计算新的120秒。

1 个答案:

答案 0 :(得分:0)

您需要检查上次活动时间,每次有人访问页面时都会更新:

if(($_SESSION['lastActivity'] + 120) < time()) {
    // timeout, destroy the session.
    session_destroy();
    unset($_SESSION);
    die('Timeout!');
} else {
    $_SESSION['lastActivity'] = time();
}