2

セッションのデフォルトの有効期限は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 に答える