PHP4.3.11でのみ動作確認しましたが、有効期限が切れた(gc_maxlifetimeを超えた)
セッションでも、GCによって削除されなければ、それは有効な>セッション情報としてみ
なす動作をしています。

PHP5.0系でも同様の動作をします。
PHPのGC自体が、PHPがセッションファイルにアクセスするタイミングでしか動作しない
ため、アクセスの多いサイトでは有効期限が比較的生きてきますが、一部のユーザしか利
用しないサイトではGC自体がなかなか動作しないため、セッションファイルにアクセスで
きてしまいます。
複数のユーザがアクセスしている場合は、他のユーザがアクセスした際にもGCが
動作するので、セッションファイルが消えていることもあります。
(確認環境: Win / Apache1.3.33 / PostgreSQL8.0.3 / PHP5.0.3 / Smarty2.6.6 )


従って、厳密に有効期限を設けたい場合は、セッションへの最終アクセスタイムスタンプ
をセッション変数に保持しておき、その時間が有効時間外の場合、またはセッション情報
がなくなっていた場合は無効とするような処理にする必要があります。























最終更新:2008年01月17日 15:52