問題:
Web サイト上の PHP セッションが頻繁に報告されています。明確な理由がないまま期限切れになり、原因について困惑したままになります。彼らは、セッションの非アクティブ性が原因なのかコードの欠陥が原因なのかを懸念しており、セッションの有効期限を制御するためのガイダンスを求めています。
解決策:
ランダムなセッションの有効期限は、多くの場合、共有セッション データ ディレクトリの問題。デフォルト設定では、PHP はセッション ファイルをシステムの一時ディレクトリに保存します。このディレクトリでは、複数のアプリケーションが同じディレクトリを共有できます。 1 つのアプリケーションの session.gc_maxlifetime 設定が短い場合、他のアプリケーションに属するセッション データが誤って削除される可能性があります。
この問題を解決するには、アプリケーションのプライベート カスタム セッション ディレクトリを構成することをお勧めします。これは、session_save_path() 関数を利用するか、session.save_path 設定ディレクティブを変更することで実現できます。
追加情報:
デフォルトでは、PHP の組み込みファイル ハンドラーは、異なるアプリケーションが所有するセッション ファイルを区別できません。ファイル名とセッション ID を単純に照合するため、競合が発生する可能性があります。
カスタム セッション ディレクトリを作成すると、アプリケーションのセッション ファイルが確実に隔離され、より短いセッション有効期限設定を使用して他のアプリケーションによってパージされないよう保護されます。 .
以上がPHP セッションが予期せず期限切れになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。