1

我想延长会话时间,以便会话变量在 12 小时后不会过期。

问题是,在 24 分钟(会话到期前的默认时间)不活动后,会话仍然到期,因此为这些SESSION变量提供了未定义的索引。

我还需要在我的代码中做些什么才能延长会话,使其在 12 小时后才会自行过期:

下面的代码不起作用ini_set()是上面session_start();

<?php
    ini_set('session.gc_maxlifetime',12*60*60);
    ini_set('session.cookie_lifetime',12*60*60);
    phpinfo();              
    session_start();

    // .... rest of code below

?>

下面的代码不起作用是 ini_set() 低于 session_start();

<?php
    phpinfo();              
    session_start();

    ini_set('session.gc_maxlifetime',12*60*60);
    ini_set('session.cookie_lifetime',12*60*60);

    // .... rest of code below

?>

phpinfo()中,它在下面说明了这一点gc_maxlifetime

                           Local Value  Master Value
session.gc_maxlifetime       43200        1440
session.cookie_lifetime      43200          0
4

1 回答 1

2

您目前只设置垃圾收集的时间。您还应该使用session.cookie_lifetime设置或session_set_cookie_params()函数在浏览器中设置 cookie 过期。

于 2012-09-13T17:58:17.737 回答