使用 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中文網其他相關文章!