1
2
3
4
5
6
7
8
9
10
11

Session及其和Cookie的區别

發(fā)布時(shí)間:2017-09醫山-26 06:00 &nb區東sp; 發(fā)布人:村山毛書朋  快森 浏少拍覽次數:6797

Session及其和Cookie的區别

關聯課件: 7子項目七 - Session及其和Cookie的區别(點擊在線預覽)


7.3.1.2   Sessi看城on機制的原理及使用

     討要;  Session存儲于服務器跳件端(默認以文件方式存儲),根據客戶端提供的se去城ssion id得到用戶的文件,取得變量的值,session 鐘空id可以使用客戶端的Cookie或者訪問的URL的附加數據傳送給服務器,然後白嗎(hòu)服務器讀Session的目錄。也就(jiù)家頻是說(shuō),session id是取得存儲在服務上Sessio聽師n變量的身份證。如果配置文件“php.ini關姐”中沒(méi)有設置“session.件熱auto_start=1”,那麼(me)要使用Session就(j窗窗iù)必須先運行代碼session_start();運行的時(shí)舊笑候,就(jiù)在服務器上産生了一個兵音session文件,随之也産生了與之惟一對(duì)應的一個se要開ssion id,定義session變量以一定形式存儲在剛才産生的家謝session文件中。通過(guò)session 身視id,可以取出定義的變量。

      下面(miàn)通過(gu能山ò)一個實例來學(xué)習一下Se藍筆ssion的使用。

      把文件“7-1.ph低動p”、“7-1action.php”、“7-1actio那著n-check.php”中的代碼做一些改動。

      開男1)“7-1.php”中的執行放商代碼無需變化,詳細請查看代碼“7-2action.個自php”。

      2)“7-1action.p妹飛hp”中的執行代碼去掉:

setcookie("user_name"新懂;, $_POST[user_name]);

setcookie("user_p身店w", $_POST[user_pw]);

     增加代分水碼:

$_SESSION["user_name"]=$慢通_POST["user_樂現name"];

$_SESSION["user_pw"]=$_POST[&呢著quot;user_pw"];

     并把做下列替亮草換:

將(jiāng)"$女報_COOKIE["user_nam站煙e"]"替換成(chéng)"$_SE著會SSION["user_name"]";

將(jiāng)"$_CO笑家OKIE["user_pw"]"替換成她跳(chéng)"$_SESSION["use計廠r_pw"]"。

     詳細請查看代碼“7-2action明刀.php”。

     3)“7-2act錢飛ion-check.php”中執行代碼做如下替換:

將(jiāng)"$_COOKIE["南人;user_name"]"替換成(chéng)&q術廠uot;$_SESSION["user_name"]男市";

將(jiāng)"$_COOKI畫爸E["user_pw"]"冷銀;替換成(chéng)"$_SESSION資去["user_pw"行國]"。

    詳細請查看代碼“7-2action-c空市heck.php”。

    其運行的結果如圖7-5所示輛厭。

7-5.1.jpg

(a)程序7-2.php的運行結果

7-5.2.jpg

(b)程序7-4 action.php的運行結物木果

7-5.3.jpg

(c)  程序7-2action-check.p說動hp的運行結果

不難發(fā)現,注冊Session的方法爲:$_SESSION[&quo飛吃t;Session_name"錢我;]=值。


      7.3從公.1.3 Cookie與Session的比較&n亮作bsp;

      1. 歌呢存儲機制。

     白人Cookie是一種(zhǒng)在遠程浏覽器端吃相存儲數據并以此來跟蹤和識别用戶的機制,而Session是存儲于服務可生器端(默認以文件方式存儲session)的。

      2. 生效條件

     Cook嗎議ie的生效與浏覽器端設置有關,如果浏覽會司器端禁用了Cookie,那麼(me)它就(ji兒分ù)不能(néng)生效了。Session的生時好效與服務器端的配置有關,如果“php樂工.ini”中沒(méi)有設置“session.auto_start信就=1”,那麼(me)要使用Session就(jiù)必須先運行代碼短化session_start()。

     3. 注冊方法

    &nb電算sp;Cookie的注冊方法爲:setcookie(&qu的很ot;cookie_name", &quo飛低t;值");Session的注冊方法爲:$_SESSION [區路"Session_name&qu我上ot;]=值。

     4中不. 生效範圍

     Coo懂物kie的生效範圍爲注冊後(hòu)的所有頁好煙,Session的生效範圍爲注冊起(qǐ)的所有頁離白。

     值得注意的是,PHP中的Sessi微靜on在默認情況下是使用客戶端的Cookie來保存sessio資她n id的,所以當客戶端的Cookie出現問題的黑腦時(shí)候就(jiù)會(hu市秒ì)影響Session了。但是,session不一定必刀紅須依賴Cookie,這(zhè)嗎妹也是Session相比Cookie的高明之處。當客戶端的Cookie說腦被(bèi)禁用或出現問題時(shí),PHP會(huì)自動把ses海長sion id附著(zhe)在URL附加數據中,這(zhè)我舊樣(yàng)再通過(guò)s多湖ession id就(jiù)能(néng)低對跨頁使用Session變量了。





  • 姜瑞祥 2018-01-07 17:28:12
    session其實指的就(jiù)是訪問者從到達某個特定主頁習雜到離開(kāi)爲止的那段時(shí)間。 Session其實是利用Cook嗎林ie進(jìn)行信息處理的,當用戶首先進(jìn)行了請求後(hòu)他分,服務端就(jiù)在用戶浏覽器上創建了一個Co樹媽okie,當這(zhè)個Session結束時(shí),其實就科大(jiù)是意味著(zhe)這(zhè)個Cookie就(jiù)過匠醫(guò)期了。
  • 姜瑞祥 2018-01-07 17:28:32
    cookie和session的共同之處在于:cookie和session都(d工見ōu)是用來跟蹤浏覽器用戶身份的會(huì)話刀國方式。
  • 姜瑞祥 2018-01-07 17:29:07
    cookie 和session的區别是:不麗cookie數據保存在客戶端,ses刀討sion數據保存在服務器端。 簡單的說(shuō),當你登商唱錄一個網站的時(shí)候,
  • 姜瑞祥 2018-01-07 17:29:42
    如果web服務器端使用的是session,那麼(me)所有的數據都(d的討ōu)保存在服務器上, 如果浏覽器使用的是cookie音又,那麼(me)所有的數據都(dōu)保存在浏覽器月行端。
  • 高成(chéng) 2018-01-09 15:44:48
    頁面(miàn)用session好(hǎo)還近朋(hái)是cookie好(hǎo)呢
  • 張燦立 2018-01-09 16:12:03
    Cookie的生效範圍爲注冊後(hòu)的所有頁,Session的生照放效範圍爲注冊起(qǐ)的所有頁.
  • 孫永偉 2018-01-10 18:53:34
    浏覽器用COOKIE是不是比較好(hǎo)?