2

session 的默认过期时间是 1440,我想把这个时间减少到 60 秒,但是当我ini_set('session.gc_maxlifetime','60')在第一页使用它时它可以工作,但它在其他页面中不起作用,请告诉我我的问题是什么?

    ----------index.php-----------
    <?php
    ini_set('session.gc_maxlifetime','60');
    session_start();       

    $_SESSION['id']='123';

    print('<br/><a href="link.php">link<a/>');
    ?>


    ----------link.php----------
    <?php
    session_start();

    if(isset($_SESSION['id'])){
        ini_set('session.gc_maxlifetime',60);
    }else{
        header('Location:index.php?ERROR');
    }

    print('<br/><a href="link.php?1">menu<a/>');
    ?>
4

2 回答 2

7

因为垃圾收集器在会话之前启动(如果启动)

所以设置ini_set('session.gc_maxlifetime',60);session_start()没有改变

于 2012-08-20T04:39:49.663 回答
4

会话垃圾收集器将作为session_start(). 由于您在开始会话更改设置,因此更改设置为时已晚。

于 2012-08-20T04:40:22.217 回答