這篇文章介紹的內容是關於PHP SESSION銷毀會話,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
#(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(); ?>登入後複製
<span style="color:rgb(0,0,0);"><span style="color:rgb(0,0,187);"><br></span></span>
(PHP 4, PHP 5, PHP 7)
ini_get — 取得一個設定選項的值
說明
string ini_get ( string $varname )
session_get_cookie_params — 取得會話cookie 參數,傳回陣列
相關推薦:
以上是PHP SESSION銷毀會話的詳細內容。更多資訊請關注PHP中文網其他相關文章!