在網(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://m.supportcoffeeroasters.com/news/wzzz/3273.html
下一篇:傳遞會(huì)話(huà)