• 締切済み

phpのセションのタイムアウトについて

os:ターボ8 PHP:4.2.3 phpのセションのタイムアウトについてご教授願えないでしょうか Q1.タイムアウトの初期値は変更できますか? php.iniの session.gc_maxlifetime = 1440 を session.gc_maxlifetime = 60 にしてhttpdを再起動して試してみたのですが1分以上放置してもセッション情報は残ったままでした。 これってどうなのでしょうか? Q2.プログラム内でタイムアウトの設定を確認するシステム変数はありますか? ちゃんとタイムアウトの時間が変わっているか確認したいのですが。 Q3.タイムアウトの時間を無限大にしてタイムアウトしない設定にする方法はありますか? 以上、個別でも結構ですのでお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

実際に試してないので自信なしですが Q1 >1分以上放置してもセッション情報は残ったままでした。 http://jp2.php.net/manual/ja/ref.session.php の session.save_path によると、 セッションファイルの保存先にサブディレクトリが設定されていると、 自動的にガーベッジコレクションは実行されないということらしいです。 (自分で、必要な時間が経過した場合にセッションファイルを削除するようなコマンドをcronなどに登録して実行する必要がある) Q2 http://jp2.php.net/manual/ja/function.ini-get.php のini_get( ) が使えると思います。 Q3 他の初期値の設定とかからすると、0が使えるのかなと思いますが、判りません。 Q1のことからすると、自動的にされないということは、ずっと残っているということかも。

webuser
質問者

補足

回答有難う御座います。 タイムアウトに関して何もしてなかったら、2、3時間放置でセッション情報が消えていました。 タイムアウトしたのだろうと思いphp.iniを調べたところ質問させて頂いた疑問にぶつかりました。 デフォルト設定のままで、長時間放置するとセッションが無くなるのは確認済みです。 セッションのタイプアウトを制御するシステム変数がsession.gc_maxlifetime では無いのかもしれませんね。

関連するQ&A