亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何進行會話處理?

發布時間:2020-05-21 17:42:43 來源:億速云 閱讀:278 作者:鴿子 欄目:編程語言

在PHP中會話處理是一個很重要的概念,它允許用戶信息在網站或應用程序的所有頁面上保持不變。下面本篇文章就來帶大家學習一下PHP中會話處理的基礎知識,希望對大家有所幫助。

PHP中什么是會話(session)?

會話(session)是一種在不同網頁上保留信息的機制,用于在用戶瀏覽網站或應用時識別用戶。

大家一定會有這樣一個疑問:為什么網站需要會話?討論這個問題前,我們需要回過頭來看看HTTP協議是如何工作的。

HTTP協議是無狀態協議,這意味著服務器無法在多個請求之間記住特定用戶。例如,當您訪問網頁時,服務器只負責提供所請求頁面的內容。因此,當您訪問同一網站的其他頁面時,Web服務器會分別解釋每個請求,就好像它們彼此無關。服務器無法知道每個請求都來自同一個用戶。

下圖簡要描述了HTTP協議。

PHP如何進行會話處理?

在這個過程中,如果想要顯示特定用戶的信息,則必須在每個請求中對用戶進行身份驗證。想象一下如果每次發出請求時,都需要進行在頁面上輸入用戶名和密碼進行身份驗證;這樣實在太繁瑣了,根本不實用。而,會話(session)在這個時間就派上用場了。

會話(session)允許用戶跨單個站點或應用程序的不同頁面共享信息, 因此它有助于維護狀態。這使服務器知道所有請求都來自同一用戶,從而允許站點顯示用戶特定的信息和首選項。

下圖描述了HTTP協議如何與會話一起使用。

PHP如何進行會話處理?

PHP如何進行會話處理?

1、啟動會話

每當想要處理會話變量時,就需要確保會話已經啟動。有幾種方法可以在PHP中啟動會話。

1)、使用session_start函數

這是最常見到的方法,其中會話由session_start函數啟動。

PHP如何進行會話處理?

重要的是,session_start在將任何輸出發送到瀏覽器之前,必須在腳本的開頭調用該函數。否則,你會遇到臭名昭著的Headers are already sent錯誤。

2)、自動啟動會話

如果需要在整個應用程序中使用會話,還可以選擇自動啟動會話而不使用session_start函數。

php.ini文件中有一個配置選項session.auto_start,允許我們為每個請求自動啟動會話。默認情況下,它設置為0,我們可以將其設置1為啟用自動啟動功能。

PHP如何進行會話處理?

2、獲取會話ID

服務器為每個新會話創建一個唯一的id。如果要獲取會話ID,可以使用該session_id功能,如以下代碼段所示。

PHP如何進行會話處理?

這應該給你當前的會話ID。該session_id函數很有趣,因為它也可以使用一個參數 - 一個會話ID。如果要將系統生成的會話ID替換為您自己的會話ID,可以將其提供給session_id函數的第一個參數。

PHP如何進行會話處理?

重要的是要注意,當您想要使用自定義會話ID啟動會話時,必須將session_id函數放在session_start之前調用。

3、創建會話變量

一旦啟動會話,$_SESSION就會使用相應的會話信息初始化超全局數組。默認情況下,它使用空白數組初始化,您可以使用鍵值對存儲更多信息。

下面我們通過代碼示例來看看如何初始化會話變量。

PHP如何進行會話處理?

如上所示,我們使用session_start函數在腳本開頭啟動了一個會話;之后,初始化了幾個會話變量;最后,我們使用$_SESSION超全局訪問了這些變量。

使用$_SESSION超全局將數據存儲在會話中時,它最終存儲在會話啟動時創建的服務器上的相應會話文件中。通過這種方式,會話數據在多個請求之間共享。

正如我們所討論的,會話信息在請求之間共享,因此在一個頁面上初始化的會話變量也可以從其他頁面訪問,直到會話到期為止。通常,會話在瀏覽器關閉時到期。

4、修改和刪除會話變量

我們可以像修改常規PHP變量一樣修改或刪除先前在應用程序中創建的會話變量。

下面通過示例來看看如何修改會話變量。

PHP如何進行會話處理?

在上面的腳本中,我們首先檢查了是否設置了$_session['count']變量。如果沒有設置,我們將設置為1,否則我們將增加1。因此,如果多次刷新此頁,可以看到計數器每次遞增一個!

另一方面,如果想要刪除會話變量,可以使用unset函數,如下面的代碼段所示:

PHP如何進行會話處理?

這樣,我們就無法再訪問$_SESSION[‘logged_in_user_id’]變量了。因為它已被unset函數刪除。

5、銷毀會話

在上面我們知道可以使用unset函數來刪除特定的會話變量;那么如果要一次刪除所有與會話相關的數據,我們要怎么辦?

其實很簡單,我們可以使用session_destroy函數。

下面我們來看看session_destroy函數是如何工作的。

PHP如何進行會話處理?

說明:session_destroy函數刪除存儲在當前會話中的所有內容。因此,當存儲在磁盤上的會話數據被session_destroy函數刪除時,我們將從后續請求中看到一個空的會話變量。

注:通常,在用戶注銷時才會使用session_destroy函數

以上就是在PHP中進行會話處理(代碼詳解)的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伽师县| 仪陇县| 泰安市| 尚志市| 丹东市| 肃北| 盐山县| 香格里拉县| 山东| 会同县| 宁南县| 东至县| 昌平区| 临猗县| 陆丰市| 南华县| 德清县| 张家界市| 浙江省| 安龙县| 乐都县| 永年县| 涟水县| 萝北县| 穆棱市| 专栏| 合阳县| 喀喇| 韩城市| 越西县| 项城市| 松阳县| 房产| 肇庆市| 婺源县| 定南县| 容城县| 乐山市| 仙游县| 镇沅| 东明县|