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