這篇文章介紹的內容是關於PHP SESSION銷毀會話,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
session_destroy
(PHP 4, PHP 5, PHP 7)
session_destroy — 銷毀一個會話中的全部資料
說明
bool session_destroy ( void )
session_destroy() 銷毀當前會話中的全部資料, 但是不會重設當前會話所關聯的全域變數, 也不會重設會話 cookie。 如果需要再次使用會話變數, 必須重新調用 session_start() 函數。
Note: 通常情況下,在你的代碼中不必調用 session_destroy() 函數, 可以直接清除 $_SESSION 數組中的資料來實現會話資料清理。
為了徹底銷毀會話,必須同時重設會話 ID。 如果是通過 cookie 方式傳送會話 ID 的,那麼同時也需要 調用 setcookie() 函數來 刪除用戶端的會話 cookie。
當啟用了 session.use_strict_mode 配置項的時候,你不需要刪除到期會話 ID 對應的 cookie, 因為會話模組已經不再接受攜帶到期會話 ID 的 cookie 了, 然後它會產生一個新的會話 ID cookie。 建議所有的網站都啟用 session.use_strict_mode 配置項。
Warning
過早的刪除會話中的資料可能會導致不可預期的結果。 例如,當存在從 JavaScript 或者 URL 連結過來的並發請求的時候, 某一個請求刪除了會話中的資料,會導致其他的並發請求無法使用會話資料。
雖然當前的會話處理模組不會接受為空白的會話 ID, 但是由於用戶端(瀏覽器)的處理方式, 立即刪除會話中的資料可能會導致產生為空白的會話 cookie, 進而導致用戶端產生很多不必要的會話 ID cookie。
為了避免這種情況的發生,你需要在 $_SESSION 中設定一個時間戳記, 在這個時間戳記之後的對於會話的訪問都將被拒絕。 或者,確保你的應用中不存在並發請求。 這個規則同樣適用於 session_regenerate_id()。 session_regenerate_id() also.
傳回值
成功時返回 TRUE
, 或者在失敗時返回 FALSE
。
範例
Example #1 銷毀會話資料以及
<?php// 初始化會話。// 如果要使用會話,別忘了現在就調用:session_start();// 重設會話中的所有變數$_SESSION = array();// 如果要清理的更徹底,那麼同時刪除會話 cookie// 注意:這樣不但銷毀了會話中的資料,還同時銷毀了會話本身if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] );}// 最後,銷毀會話session_destroy();?>
ini_get
(PHP 4, PHP 5, PHP 7)
ini_get — 擷取一個配置選項的值
說明
string ini_get ( string $varname )
成功時返回配置選項的值。
session_get_cookie_params — 擷取會話 cookie 參數,返回數組
相關推薦:
PHP session 防止重複登入
PHP session的銷毀是三種方式