您好,登錄后才能下訂單哦!
這篇文章主要講解了“php session刪除會話的方法介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php session刪除會話的方法介紹”吧!
刪除會話,有三個方法
1、unset();
刪除單個會話
<?php
session_register();
$_SESSION["admin"]="aa";
if(!empty($_SESSION['admin'])){
$myvalue=$_SESSION['admin'];
echo $myvalue;
}
//刪除session,一個個地刪除的
unset($_SESSION["admin"]);
echo $_SESSION['admin'];
?>
只能顯示 一個,說明,刪除了session
注意:
unset()不可以一次注銷整個數組,這樣會禁止整個會話功能 ,
如:unset($_SESSION)將全局變量$_SESSION銷毀,而且沒有辦法將其恢復 ,用戶也不能再注冊 $_SESSION變量,
2、刪除多個會話$_SESSION=array();
//刪除多個會話,把一個空數組給$_SESSION,把之前的值覆蓋了,這樣并不是將$_SESSION銷毀 ,還可以重新賦值
<?php
session_register();
$_SESSION["admin"]="aa";
$_SESSION['name']="葉凌月";
$_SESSION['age']=16;
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
//刪除多個會話,把一個空數組給$_SESSION,把之前的值覆蓋了,這樣并不是將$_SESSION銷毀 ,還可以重新賦值
$_SESSION=array();
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
3、結束當前的會話:
session_destory();
1、出錯 :
<?php
session_start();
$_SESSION["admin"]="aa";
$_SESSION['name']="葉凌月";
$_SESSION['age']=16;
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
//結束當前會話
session_destroy($_SESSION);
//session_unset($_SESSION);
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
Wrong parameter count for session_destroy()
錯誤的參數計數session_destroy()
原因 :
session_destroy();不需要添加參數 ,注銷代表的是當前 的會話
注意:
使用session_destroy();要與session_start();一起用不然會受到警告
2、出錯,覺得session_destroy();
不起作用,為什么還是會把$_SESSION的值顯示 ,是否是注銷了還保存有一份在cookie里呢,但是沒有創建cookie呀,不管先試試
<?php
session_start();
$_SESSION["admin"]="aa";
$_SESSION['name']="葉凌月";
$_SESSION['age']=16;
setcookie($_SESSION,"",time()-1);
//結束當前會話
session_destroy();
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
、
Warning: setcookie() expects parameter 1 to be string, array given
你給傳遞給strlen()的參數不是string類型的。
改為
結果還是顯示 了
原因 大解決:
1、session 是一個會話,在session_start() 的時候建立。
2、$_SESSION 是一個全局數組,和其他的全局數組沒有任何區別。只是php在創建一個會話的時候,會順便創建一個全局數組來保存會話的內容,這個數組又剛好叫$_SESSION,和我們自己去創建的其他數組沒有什么不一樣。
3、session_start() 執行的時候,開啟了會話,首先是如果該會話沒有被創建,則在系統的tmp目錄中創建了session文件(默認,可自定義),并且在當前會話的執行腳本創建全局數組$_SESSION,這時的$_SESSION是一個空數組。如果會話存在,則讀取session文件中的內容,建立$_SESSION數組。
4、session_destroy() ,手冊中明確的說道:destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.
不會刪除 session 的全局變量和 session相關cookie,只是結束了這次會話。作為一個普普通通的全局變量,
如果我們不需要樂得話,就將他 unset() 掉。如果想再次開啟會話,就需要再一次session_start(),但是session_start() 重新建立會話,會重新初始化$_SESSION數組,session_start()之后$_SESSION 就又是一個空數組了
<?php
session_start();
$_SESSION["admin"]="aa";
$_SESSION['name']="葉凌月";
$_SESSION['age']=16;
//結束當前會話
session_destroy();
?>
<?php
session_start();
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
修改下
總結 :
session_destroy();只是僅僅結束當前會話,而且是用之前要與session_start();一起用,session_start();是初始化變量$_SESSION相當于清除了數組里的變量
還有session_destory();與session_unset();得到的結果不一樣,
要一樣,session_destroy();重新啟動一次,session_start();
感謝各位的閱讀,以上就是“php session刪除會話的方法介紹”的內容了,經過本文的學習后,相信大家對php session刪除會話的方法介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。