PHP を使用する場合、デフォルトのセッション タイムアウト設定を調整する必要が生じる場合があります。 php.ini の変更は解決策を提供しますが、このファイルへのアクセスが制限されているため、別の方法を探す必要がある場合があります。
セッションの非アクティブ状態に厳密な上限を適用するには、次の方法を実装できます。この境界をセッション データ内に保存するカスタム ロジック:
session_start(); $now = time(); if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) { // Session has expired, destroy and start a new one session_unset(); session_destroy(); session_start(); } // Set expiration time for both new and existing sessions $_SESSION['discard_after'] = $now + 3600;
厳密な制限を課す必要がない場合は、特定の PHP 構成パラメータに依存して下限を確立できます。
// Server retains session data for at least 1 hour ini_set('session.gc_maxlifetime', 3600); // Clients retain session ID for exactly 1 hour session_set_cookie_params(3600); session_start();
このアプローチでは、サーバーにセッション データを最小限の期間保存するように指示します。
クライアントは同じ時間が経過したらセッション ID を破棄します。タイムアウトについては、クライアント側とサーバー側の両方の設定に対処することが重要です。制御と予測可能性を最大限に高めるには、厳密な上限と session.gc_maxlifetime の下限を組み合わせます。ただし、特にその値が機密である場合、セッション ID の保存には注意が必要な場合があることに注意してください。
以上がPHP でセッション タイムアウトを制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。