php需要session么,php – 为什么需要session_ destroy()?
session_destroy()結(jié)束整個會話,這意味著它將從PHP的會話存儲中刪除,不能再次使用.如果您只取消設(shè)置會話變量和cookie,則會話仍然是活動服務(wù)器端,如果再次設(shè)置某些會話變量并且具有原始會話ID的cookie再次發(fā)送到客戶端,則可能會被回收.
換句話說:會話基本上由存儲在Web服務(wù)器某處的秘密ID以及注冊到該會話的會話變量組成.會話ID被發(fā)送到客戶端(通常作為cookie),因此客戶端可以在以后的請求中被識別為會話的“所有者”.假設(shè)已經(jīng)創(chuàng)建了一個會話并且已經(jīng)注冊了變量,這里概述了這些函數(shù)的作用:
> session_start()導(dǎo)入屬于客戶端從會話注冊表發(fā)送到$_SESSION數(shù)組的會話ID的所有會話變量
> session_unset()或在$_SESSION變量上調(diào)用unset()將清除注冊到當(dāng)前會話的所有變量,但它不會清除會話本身
>取消設(shè)置客戶端的會話cookie將向客戶端發(fā)出會話已結(jié)束的信號,但這不會從服務(wù)器上的會話注冊表中刪除會話
> session_destroy()是唯一一個實際從會話注冊表中清除會話的函數(shù),因此字面上“破壞”會話
雖然session_destroy()將取消注冊所有會話變量,但它不會清除當(dāng)前正在執(zhí)行的腳本中的$_SESSION數(shù)組,因此取消設(shè)置會話變量以防止錯誤和安全問題仍然是個好主意.
在相關(guān)的說明中,PHP手冊建議不要使用session_unset(),而是取消設(shè)置$_SESSION中的鍵:
If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable, i.e. unset($_SESSION['varname']);.
總結(jié)
以上是生活随笔為你收集整理的php需要session么,php – 为什么需要session_ destroy()?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringAop两种配置:xml配置和
- 下一篇: nodejs和php性能,Nodejs