session_unset()和session_destroy()用法分析
關于session_unset()和session_destroy()的函數使用進行介紹。
session_unset()
釋放當前在內存中已經創建的所有$_SESSION變量,但不刪除session文件以及不釋放對應的sessionid
session_destroy()
刪除當前用戶對應的session文件以及釋放sessionid,內存中的$_SESSION變量內容依然保留
if (session_destroy()) {ShowMsg("注銷成功!", '/member/login');exit(); }else {unset($_SESSION);ShowMsg("注銷成功!", '/member/login');exit(); }因此,釋放用戶的session所有資源,需要順序執行如下代碼:
程序代碼
<php $_SESSION['user']='lowell'; session_unset(); session_destroy(); ?>另一個網友分析
session_unregister是注銷一個session變量;
session_destroy是注銷所有的session變量,并且結束session會話;
session_unset()并不注銷session變量,但把所有的session變量的值清空。
那么一般在退出的操作時可以這樣做:
session_start(); session_unset(); session_destroy(); header("location:XXX.php");在php中銷毀變量有很多不同的變化。如:unset();session_unset();session_destroy();但session變量作為特殊的變量,不同的銷毀方式更會產生不同的結果。
unset()在php3時其使用后會返回一個boolean值,但在php4及以后的版本,其值是一個沒有返回值的語句。如果在函數中unset()的一個全局變量或者一個通過引用傳遞的值,則其只能在局部銷毀變量,在調用環境中的變量卻會保持調用unset()前一樣的值。如果unset一個靜態變量,則靜態變量及其所有引用都會被銷毀。如果想unset一個globals變量則可以借用GLOBALS數組來銷毀:unset($GLOBALS['str']);
unset($_SESSION['str'])則可以刪除單個的$_SESSION['str']變量。若使用unset($_SESSION);則刪除服務器上的所有SESSION文件。
session_unset()刪除當前所有的session值,其結果同session_destroy();
總結
以上是生活随笔為你收集整理的session_unset()和session_destroy()用法分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解Session实现原理及安全运用
- 下一篇: OAuth 2.0攻击方法及案例总结