注銷(xiāo)和銷(xiāo)毀會(huì)話(huà)

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

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

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

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

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

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

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

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

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

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

上一篇:注冊(cè)和讀取會(huì)話(huà)

下一篇:傳遞會(huì)話(huà)

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