PHP中Session如何使用

PHP中Session如何使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

洛龍網站建設公司創(chuàng)新互聯(lián)建站,洛龍網站設計制作,有大型網站制作公司豐富經驗。已為洛龍上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的洛龍做網站的公司定做!

在 PHP 中,Session 是一種服務器端的機制,服務器使用一種散列表的結構(類似于 JSON)來保存信息。相比于保存在客戶端的 Cookie,Session 將用戶交互信息保存在了服務器端,使得同一個客戶端每次和服務端交互時,不需要每次都傳回所有的 Cookie 值,而是只需要傳回一個 ID 即可,這個 ID 是客戶端第一次訪問服務器的時候生成的,而且是唯一的。

還有一點就是,因為 Cookie 存儲在客戶端,所以用戶有權禁用 Cookie,而 Session 是存儲在服務器端的,用戶無法禁用。

Session 簡介

Session 在 Web 技術中占有非常重要的地位。由于網頁是一種無狀態(tài)的連接程序,無法記錄用戶的瀏覽狀態(tài),所以需要通過 Session 來記錄用戶的有關信息,以供用戶再次以這個身份對 Web 服務器發(fā)起請求。

Session 中文是“會話”的意思,與 Cookie 類似,都是用來儲存使用者相關資料的,比如用戶名、訪問權限、登陸時間等。與 Cookie 最大不同之處在于 Cookie 是將資料存放于客戶端電腦之中,而 Session 則是將數據存放于服務器系統(tǒng)之下。

當開啟一個 Session 時,PHP 將會創(chuàng)建一個隨機的 Session ID(例如“t5is1r7ct740dn390kuv3mpcse”),每個用戶的 Session ID 都是唯一的,而且 Session ID 與服務器上存儲該用戶 Session 數據的文本文件名稱相同。

Session ID 會分別保存在客戶端和服務器端兩個位置。

客戶端,使用臨時的 Cookie 保存在瀏覽器指定目錄中,Cookie 名稱默認為“PHPSESSID”;

服務器端,以文本文件形式保存在指定的 Session 目錄中。

默認情況下,這個 Session ID 將作為一個 Cookie 發(fā)送給 Web 瀏覽器,接下來 PHP 頁面將使用這個 Cookie 來訪問 Session 的信息。

與 Cookie 相比,Session 擁有以下的優(yōu)勢:

通常情況下 Session 更加安全,因為 Session 中的數據不會在客戶端和服務器端來回重復傳遞;

Session 能夠存儲比 Cookie 更多的信息;

在用戶禁用 Cookie 的情況下,使用一些方法任然能保持 Session 正常工作。

Session 的工作原理

我們可以使用 PHP  腳本創(chuàng)建和存儲 Session 中的數據。在創(chuàng)建一個 Session 后,所有 Session 變量在用戶一次會話期間里訪問的所有頁面都有效。其工作機制如下圖所示。

PHP中Session如何使用

Session 的存儲方式

Session 默認會以文本的形式存儲在服務器的臨時目錄中,文件名以“sess_”作為前綴,后面加上“Session ID”,例如“sess_t5is1r7ct740dn390kuv3mpcse”。

我們可以在 php.ini 中找到 Session 的相關配置,下面是一些常用的配置信息:

session.save_handler = files                  #session 的存儲方式,默認是文件,還可以是 redis 或者是 memcache
session.save_path = "d:/wamp/tmp"    #session 文件的存儲目錄
session.use_cookies = 1                        #是否使用 cookie 存儲 session_id
session.name = PHPSESSID                  #客戶端存儲 session_id 的會話名
session.auto_start = 0                           #是否自動開啟 session
session.cookie_lifetime = 0                   #設置客戶端中存儲的 session_id 的過期時間,以秒為單位
session.use_only_cookies=0                 #是否只使用 cookie 來處理 session_id
session.gc_divisor = 1000                     #進程比率
session.gc_probability = 1                    #垃圾回收的處理幾率
session.gc_maxlifetime = 1440             #設置 session 文件的過期時間

Session 的生命周期

Session 在以下情況會被刪除,也就是失效:

Session 超時,超時指的是連續(xù)一定時間服務器沒有收到該 Session 所對應客戶端的請求,并且這個時間超過了服務器設置的 Session 超時的最大時間;

程序調用方法主動銷毀 Session;

服務器關閉或服務停止。

看完上述內容,你們掌握PHP中Session如何使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享文章:PHP中Session如何使用
路徑分享:http://www.muchs.cn/article40/ihepeo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網頁設計公司、虛擬主機全網營銷推廣網站制作、外貿網站建設、外貿建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設