首頁  >  文章  >  後端開發  >  PHP SESSION銷毀會話

PHP SESSION銷毀會話

不言
不言原創
2018-04-18 13:52:041477瀏覽

這篇文章介紹的內容是關於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(), &#39;&#39;, 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>


ini_get

(PHP 4, PHP 5, PHP 7)

ini_get — 取得一個設定選項的值

說明 
string ini_get ( string $varname )

#成功時傳回配置選項的值。


session_get_cookie_params取得會話cookie 參數,傳回陣列

相關推薦:

PHP session 防止重複登入

PHP session的銷毀是三種方式#

以上是PHP SESSION銷毀會話的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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