HTPP 通訊協定的Stateless特性
在HTTP通訊協定中,並沒有設計保存連線狀態的能力 (Stateless Connection),所以不管上一頁還是下一頁之類的動作,對Server來說,每一次的網頁…都是重新建立連線 (不論是否同一頁),所以每個HTTP連線之間都是獨立的,互不相干,所以囉,User輸入的資料,或是網頁的變數值,都無法被保留下來 。(無法給下一個網頁使用(PS : 除非使用POST 或 GET 傳給下一頁 ))。
這一篇主要是介紹COOKIE的,什麼是COOKIE ?
Cookie 是一種能夠將狀態記錄在用戶端的技術。
建立 & 修改 :
我們使用 setcookie() 來操作。
語法 :
Setcookie (name , value , expire) ;
Name : variable name
Value : variable of value
Expire: 到期的時間,設定該cookie何時該到期,到期之後,該cookie會被刪除而消失,如果沒有設置到期時間,cookie會在browser close的時候,立刻刪除。
讀取與刪除Cookie
讀取方式 :
程式要讀取cookie時,只要使用內建變數 $_COOKIE[] 就可以了 。
刪除方式 :
將到期時間設為過去時間即可。
Setcookie(“count”,1,time()-10);
Sample :
<?php
$count = 1 ;
if (!isset ($_COOKIE['counter']))
{
//設定cookie 的 count 變數值為 1, 30 天之後到期
setcookie("counter",1,time()+30*24*3600);
}
else
{
//把讀取到的cookie 內容+1 , 成為本次上站次數
$count = $_COOKIE['counter']+1 ;
setcookie("counter" , $count , time()+30*24*3600);
}
echo "這是您第$count 次進入本站";
?>
存取範圍:
建立cookie後,在預設情況下,只有同一個網站、同一個目錄,與子目錄下的網頁,才可以存取這個cookie。
Cookie 用陣列的方式來儲存
<?php
setcookie("info[1]", 'tony',time()+30*60);
setcookie("info[2]", 'Eric',time()+30*60);
echo $_COOKIE['info'][1];
echo '<br>';
echo $_COOKIE['info'][2];
echo '<br>';
?>
留言列表