首頁 >後端開發 >php教程 >如何使 PHP 會話在 30 分鐘不活動後過期?

如何使 PHP 會話在 30 分鐘不活動後過期?

DDD
DDD原創
2024-12-20 03:29:13215瀏覽

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

PHP 會話在30 分鐘後過期

問題:
如何建立一個PHP 會話分鐘?

答案:

方法:實作自訂會話逾時

PHP 內建的會話逾時方法,如同session.gc_lifetime和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 分鐘後使會話過期,請使用過期時間為 time() 的 setcookie 60*30。

以上是如何使 PHP 會話在 30 分鐘不活動後過期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn