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