会话很快就会在php中过期

时间:2012-09-13 17:57:03

标签: php session session-cookies

我想延长会话时间,以便会话变量在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

1 个答案:

答案 0 :(得分:2)

您目前只设置垃圾回收的时间。您还应该使用session.cookie_lifetime设置或session_set_cookie_params()功能将Cookie设置为在浏览器中过期。