mvc php session,PHP Session入门教程
Session 存儲在服務端,本質上和 Cookie 沒有區別,都是針對 HTTP 協議的局限性而提出的一種保持客戶端和服務端間會話狀態的機制。
Session 經常用來在網站的上下文間實現頁面變量的傳遞、用戶身份認證、程序狀態記錄等,常見的有配合 Cookie 使用、實現保存用戶的登錄狀態或者記錄用戶的購物下單信息等。
在使用 Session 之前必須先開啟 Session,可使用 session_start() 開啟 Session,同 Cookie 一樣,在開始之前不能有任何輸出內容,否則會出現如下警告:
Warning: session_start(): Cannot send session cookie - headers already sent
也可以修改 php.ini 中的session.auto_start=0為session.auto_start=1,設置自動開啟 Session 支持,這樣就不必每次在使用 Session 的時候都加上 session_start() 了。
Session 的設置非常簡單,可以直接使用以下形式:
$_SESSION[key]=value
其中 key 表示 Session 的鍵,所有設置的 Session 都存儲在全局數組 $_SESSION 中。
當在代碼中設置了 Session 時,在 HTTP 請求的消息頭中會攜帶一個名為 PHPSESSID 的 Cookie,其值是一個 32 位十六進制的字符串。每個客戶端向服務器請求時都會產生一個不同的值,如果清除瀏覽器的 Cookie,再次刷新頁面時將會重新設置一個 PHPSESSID 的值。
服務端接收到這個 Cookie,根據其值在服務器中找到對應的 Session 文件,從而實現保持與客戶端鏈接狀態的信息,其中 Session 中存儲著序列化的 Session 鍵值等信息。
設置了 Session 的 HTTP 請求消息頭如下:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=4680c9df2ce9ac4d1aa7f366bd92d83a
Host:localhost
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
如果讀者想深入學習 Session,可以繼續閱讀:
總結
以上是生活随笔為你收集整理的mvc php session,PHP Session入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tea java 代码,TeaVM编译器
- 下一篇: php微信墙开发,Node.js如何开发