注銷和銷毀會話

  • 2020-09-08 10:54:59
  • 閱讀次數(shù):
  • 作者:盈嵐科技小編
  • 來源:http://51zuanshi.com.cn

網(wǎng)站建設(shè)中,當(dāng)完成一個會話后,可以刪除Session變量,也可以將其銷毀。如果用戶想退出網(wǎng)站,就需要提供一個注銷的功能,把所有信息在服務(wù)器中銷毀??梢哉{(diào)用session_destroy()函數(shù)結(jié)束當(dāng)前的會話,并清空會話中的所有資源。該函數(shù)的語法格式如下:bool session-destroy ( void )  //銷毀和當(dāng)前Session有關(guān)的所有資料相對于session_start()函數(shù),該函數(shù)用來關(guān)閉Session的運作,如果成功則傳回true,銷毀Ses-sion資料失敗則返回false。

該函數(shù)并不會釋放和當(dāng)前Session相關(guān)的變量,也不會刪除保存在客戶端Cookie中的SessionID。因為$_SESSION數(shù)組和自定義的數(shù)組在使用上是相同的,不過可以使用unset()函數(shù)來釋放在Session中注冊的單個變量。如下所示:unset($_SESSION["username"]);  //刪除在Session中注冊的用戶名變量     unset($_SESSION["passwrod"]);  //刪除在Session中注冊的用戶密碼變量

提示:不要使用unset($_SESSION)刪除整個$_SESSION數(shù)組,這樣將不能再通過$_SESSION超全局?jǐn)?shù)組注冊變量了。但如果想把某個用戶在Session中注冊的所有變量都刪除,可以直接將數(shù)組變量$_SESSION賦上一個空數(shù)組。如下所示:$_SESSION=array();  //將某個用戶在Session中注冊的變量全部清除PHP默認(rèn)的Session是基于Cookie的,Session ID被服務(wù)器存儲在客戶端的Cookie中,所以在注銷Session時也需要清除Cookie中保存的Session ID,而這就必須借助setCookie()函數(shù)完成。

【示例】清除客戶端Cookie中保存的會話信息。在Cookie中,保存Session ID的Cookie標(biāo)識名稱就是Session的名稱,這個名稱是在php.ini中,通過session.name屬性指定的值。在PHP腳本中,可以通過調(diào)用session_name()函數(shù)獲取Ses-sion名稱。刪除保存在客戶端Cookie中的SessionID,代碼如下:

<?php    if (isset($_COOKIE[session_name()])) {                 //判斷Cookie中是否保存Session ID        setcookie(session_name(), '', time()-3600, '/');   //刪除包含Session ID的Cookie    }?>

通過前面的介紹可以總結(jié)出來,Session的注銷過程共需要4個步驟。在下面的腳本文件de-stroy.php中,提供完整的4個步驟代碼,運行該腳本就可以關(guān)閉Session并銷毀與本次會話有關(guān)的所有資源。代碼如下:

<?php//第一步:開啟Session并初始化session_start();//第二步:刪除所有Session的變量,也可用unset($_SESSION[xxx])逐個刪除$_SESSION = array();//第三步:如果使用基于Cookie的Session,使用setCooike()刪除包含Session ID的Cookieif (isset($_COOKIE[session_name()])) {    setcookie(session_name(), '', time()-42000, '/');}//第四步:最后徹底銷毀Sessionsession_destroy();?>

當(dāng)前文章標(biāo)題:注銷和銷毀會話

當(dāng)前URL:http://51zuanshi.com.cn/news/wzzz/3273.html

上一篇:注冊和讀取會話

下一篇:傳遞會話

網(wǎng)站建設(shè)、抖音推廣、頭條推廣、微信朋友圈推廣、快手推廣專線:15368242187(微信同號)