在PHP中,所有資料(變數、常數、全域變數)的最大生命週期是一個腳本週期(即:瀏覽器向伺服器發送請求--->伺服器回應請求並將該請求交由PHP處理---->PHP處理後傳回給伺服器--->伺服器傳回瀏覽器。瀏覽器再次要求時,前一次的所有資料都會失效。
但是,很多操作,如:使用者登入操作,在使用者登入成功後,使用者再次要求時能夠不輸入密碼而直接管理後台。同時如果使用者登入失敗或沒有登入的情況下,無法直接透過後台的URL存取。這是就需要有資料能夠記錄使用者的登入狀態,使其在多個腳本週期中都能夠使用。 --------這種跨腳本週期的資料儲存機制稱為會話技術。
原則:1.伺服器在回應請求時可以向瀏覽器端發送指令,來管理儲存在瀏覽器端的cookie資料。
2.如果已儲存瀏覽器儲存了某伺服器所設定的cookie數據,則會在此要求時,自動攜帶儲存的cookie資料到伺服器端。
使用:
1.伺服器中設定(增刪改查)cookie:
# setcookie(key,value);透過鍵(key)-值(value)設定對cookie資料
<?php setcookie('name','Li');
var_dump($_COOKIE['name']);
var_dump($_COOKIE['name']);//该文件为cookie_2.php
# 因此,cookie資料在瀏覽器再次要求時會自動傳送給伺服器端。
指的是cookie資料能運作的區域,預設為:僅在目前網域下有效。但可以透過第五個參數設定;
setcookie('name','Li',0,'qq.com');此設定表示有效域可擴及其所有子網域中。
造成:www.qq.com//其中以qq.com為其一級網域名稱。
www.wx2.qq.com //wx2.qq.com且為一級網域名稱下的子網域名稱。
此為IE瀏覽器上存在的cookie資料。
我們可以發現,它是以domain來區分不同的存取的,並且其路徑為‘/’,表示網站目錄都有效,expires表示失效時間。
5.僅安全傳輸(https://.......表示加密的http協定)
透過將setcookie()的第六個參數為true,可以開啟僅安全傳輸選項。開啟後,只有https://....請求時才會將該cookie資料攜帶給服務端。而預設的false表示不開啟安全傳輸,也就是所有的請求方式均可以得到該cookie資料。
6.HTTPONLY
透過設定setcookie()的第七個參數為true,可以開啟HTTPONLY選項,該選項表示只有http請求的時候才能得到cookie數據,而透過javascript等腳本無法得到目前的cookie資料。
注意:1.cookie值僅支援字串類型(對於數字類型的資料可以轉換為字串後在設定)。
2.cookie的鍵,可寫成陣列下標的形式。
setcookie('student[name], setcookie('student[gender]','Male');
#
相關推薦:
總結會話技術COOKIE、SESSION的實例
以上是PHP中會話技術Cooki詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!