會話控制是一種追蹤使用者的通訊方式,使用會話控制主要基於以下幾點:由於http協定的無狀態性,使得無法透過協定來建立兩次請求之間的關聯;對於通常的頁面之間的資料傳遞方式get和post而言,主要處理參數的傳遞、資料的輸入兩個頁間簡單的資料傳遞,對於一個使用者的在網站上的多個頁面,多種不同的數據,可能還有權限的不同而導致頁面的不同、操作方式的不同等等,使用get和post非常繁瑣。
##1.cookie方式
為了對使用者進行跟踪,就必須對使用者進行標記,cookie的思想就是,當使用者造訪網站的第一個頁面時,透過設定使用者的資訊標識,web伺服器將其以文字檔案的形式存放到使用者的電腦上面,這些檔案就是所謂的cookie,以鍵值對的方式存儲,當用戶再訪問第二個該網站的頁面時,將通過http頭信息,將攜帶cookie文件中的信息一起訪問服務器,並重新對剛才的用戶信息進行驗證,這樣避免了每次訪問都輸入用戶信息,可以確定多個頁面之間的訪問是不是同一用戶了。 將資訊設定為cookie的函數:setcookie($key, $value, $expire, $path, $domain, $secure)。 參數依序為:鍵、值、過期時間(UNIX時間戳,預設為0表示關閉瀏覽器則cookie消失)、存取cookie的路徑,設定後伺服器上該路徑下的腳本可造訪cookie(預設為根目錄)、存取cookie的域名,只有該網域(如www.example.com)下的網站網頁可存取cookie、是否為https安全連線才啟用cookie。 例如透過post提交表單後記錄一些資訊<?php if(isset($_POST)){ $time = time(); setcookie('user', $_POST['user'], $time+3600); // 时间参数需要比当前时间点大,以表示cookie信息的有效时间 s etcookie('data', array(1,2,3), $time+1200); // 可以存放各种数据 } 保存cookie成功后,可直接到$_COOKIE超全局数组中以键名取得该值,非常方便,如echo $_COOKIE['user'],基本的数据类型都支持 cookie的删除仍是通过setcookie进行,最好写成将时间提前的形式,或者直接写一个键名,比如在用户点击退出时进行该项操作 setcookie('user', '', time()-200); // 时间提前,相对当前时间 setcookie('user'); // 简写,只写键名
2.session方式session與cookie相似,只是原來將資訊存在用戶端的,現在改為存到服務端,但在用戶端產生一個標識id,這個id預設是儲存到用戶本地的cookie中,所以session又跟cookie扯上了關係。這樣用戶第一次造訪時將資訊存到web伺服器,並隨機分配給用戶一個固定長度的字串(session id),以後用戶再訪問其他頁面,就帶著這個id去服務端裡找對應用戶數據訊息,於是就可以追蹤使用者了,使用cookie的session稱為基於cookie的session。 但使用者可以將瀏覽器設為停用cookie(雖然一般不會這麼做),有的網站在偵測到停用cookie後會強制讓使用者去開啟,但卻是存在這麼一種情況,如此一來透過基於cookie的方式行不通了,這時就可以透過在URL後面附帶一個session id的get形式傳遞了,當然也可以透過http post。 session的使用 首先,要用session_start()開啟一個會話。注意對於這類網路函數,在它前面不准有輸出,即使是 然後,註冊會話變量,也就是訪問用戶資訊或有用的數據,不需要使用什麼函數,直接存入$ _SESSION超全域數組,例如$_SESSION['user'] = $_POST[['user'],這些資料將會儲存到服務端的某個檔案中,當然也可能是快取(memcache、redis)中。 當跳到其他頁面時,在其他頁面也要先開啟這個會話,依然是session_start(),如果會話已經開啟,則函數會傳回目前會話,如果沒有則重新開啟。 最後,使用者退出或某些原因銷毀對話,要註銷這些變數。分四步驟走:
1.仍然是先开启会话,或者是跳转到其他页面时,再次返回已经存在的会话,需要确保前面没有输出 session_start(); // 开启或返回一个会话 2.清空$_SESSION数组中的相关变量 unset($_SESSION['robert']) // 销毁某一个变量 $_SESSION = array(); // 或者一次性全部销毁会话变量 3.清除保存在客户端的cookie,别忘了session id还在用户计算机上面 if( isset( $_COOKIE[ session_name ()])){ unset( $_COOKIE[ session_name()]); // session_name()获取sesion的名,session id也是以名和值的形式存储的 } 4.彻底销毁存储到服务器的信息 session_destroy();
四步驟走完,就結束了一次session會話。
3.使用會話控制的基本步驟如下:
要使用一個會話變數很簡單,使用$_SESSION陣列存取已儲存的會話變數即可,如 echo $_SESSION['mywar']; 會列印出 5。使用會話前必須先使用session_start()函數啟動一個會話。
4)註銷變數和銷毀會話
註銷變數直接使用unset即可,如unset($_SESSION['myvar']),如何要一次銷毀所有會話變數,可以使用unset ($_SESSION); 當使用完一個會話後,首先應該註銷所有的變量,然後再調用session_destroy() 來清除會話ID。
以上是如何理解PHP中的會話控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中