ホームページ >バックエンド開発 >PHPチュートリアル >PHP セッションが 30 分間非アクティブになった後に期限切れになるようにするにはどうすればよいですか?

PHP セッションが 30 分間非アクティブになった後に期限切れになるようにするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-20 03:29:13194ブラウズ

How to Make a PHP Session Expire After 30 Minutes of Inactivity?

30 分後に PHP セッションを期限切れにする

質問:
30 後に期限切れになる分?

答え:

方法: カスタム セッション タイムアウトを実装する

PHP の組み込みセッション タイムアウト メソッド (次のような) session.gc_maxlifetime と session.cookie_lifetime は、さまざまな要因により信頼できません。代わりに、以下を使用して独自のタイムアウトを実装します。

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
  session_unset();
  session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();

このコードは、リクエストごとにセッション タイムスタンプを更新し、セッション ファイルをアクティブに保ち、ガベージ コレクターによる早期の削除を防ぎます。

追加のセキュリティ:

セッション ハイジャックから保護するには、セッション ID を再生成します。定期的に:

if (!isset($_SESSION['CREATED'])) {
  $_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > 1800) {
  session_regenerate_id(true);
  $_SESSION['CREATED'] = time();
}

注:

  • session.gc_maxlifetime をカスタム タイムアウト (この例では 1800) 以上に設定します。
  • アクティビティの 30 分後にセッションを期限切れにするには、setcookie を有効期限 time() で使用します。 60*30.

以上がPHP セッションが 30 分間非アクティブになった後に期限切れになるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。