【问题标题】:PHP Session increase expiry timePHP Session 增加过期时间
【发布时间】:2017-04-26 07:01:03
【问题描述】:

我只是想在我的项目中延长 php 会话时间。从一些文档中我发现了这段代码:

ini_set('session.gc_maxlifetime', 2*60*60); //2 hours

默认情况下,我认为是 30 分钟。但我需要增加这个。因此,为了进行测试,我将这个时间设置为 2 分钟并尝试了我的代码。我等了2分钟,但我没有过期。

我希望我的会话超过 5 小时。但是我的代码不起作用。我在我的php文件中使用这个ini_set而不是php_ini

【问题讨论】:

    标签: php session


    【解决方案1】:

    // 服务器应保留会话数据至少 5 小时

    ini_set('session.gc_maxlifetime', 18000);
    

    // 每个客户应该记住他们的会话 ID 正好 5 小时

    session_set_cookie_params(18000);
    
    session_start(); // ready to go!
    

    那么

    $now = time();
    if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) {
        // this session has worn out its welcome; kill it and start a brand new one
        session_unset();
        session_destroy();
        session_start();
    }
    
    // either new or old, it should live at most for another hour
    $_SESSION['discard_after'] = $now + 18000;
    

    【讨论】: