- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セッションのタイムアウト管理)
セッションのタイムアウト管理について
このQ&Aのポイント
- セッションのタイムアウト管理に関して考えています。サーバー側で20分間アクセスのなかったセッションを強制的に切断したいと思っています。
- セッションのタイムアウトを制御するために、php_value session.gc_divisorを1に設定する方法も検討しています。
- また、セッションIDファイルの最終更新日から20分を過ぎているファイルに対してunlinkで物理削除する方法も考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
セッションを確実に切りたいなら、 確実に切れるように自分で処理すれといいよ! セッション(再)開始。 セッション変数から最終アクセス日時 LAST_ACCESS を取得。 無ければ、現在の日時を LAST_ACCESS に設定。 現在日時が、取得した LAST_ACCESS から 20分経過していたら、 全てのセッション変数を開放。 セッションを終了。 セッションファイルを削除。 セッションクッキーを削除。 セッションの期限が切れたことを知らせるページに遷移。 これをセットにして先頭で実行すればよさそうなきがする。。。 と思ったら、こんなページがあったよ! http://pentan.info/php/session_gc.html
お礼
お教え頂いたサイトでは、確実にガベージコレクションを 実行させる為に1/1にしていましたね。 どうも1/100とかにする最大の理由は負荷による理由っぽそうですね。 とりあえず、ガベージコレクションを1/1にして、 その後(数分後)にガベージコレクションの消し忘れ(あり得ないかもしれませんが) 対策で、ご指摘の通り、最終アクセスからの判断で削除していく方法でやって みようと思っています。 ご回答ありがとうございました。