cookie和session都可以臨時存儲多個頁面中使用的變量,但本質上是不同的。Cookie存儲在客戶端瀏覽器中,會話存儲在服務器中。它們之間的聯系是會話ID通常存儲在cookie中。
cookie是如何工作的
當客戶訪問壹個網站時,可以使用PHP中的setcookie函數生成壹個cookie。處理完成後,系統將這個cookie發送給客戶機,並保存在目錄c:Documents and Settings username \ Cookies中。Cookie是HTTP頭的壹部分,因此必須在將任何內容發送到瀏覽器之前調用setcookie函數。這個限制與header()函數相同。當客戶再次訪問該網站時,瀏覽器會自動將目錄c:Documents and Settings用戶名\Cookies中該網站對應的cookie發送到服務器,服務器會自動將客戶端發來的cookie轉換成壹個PHP變量。
通過$_cookie['xxx']讀取客戶端發送的COOKIE。
創建cookie
通過setcookie()函數創建cookie,成功返回TRUE,否則返回FALSE。
語法:
bool setcookie(字符串名稱[,字符串值[,int expire [,字符串路徑[,字符串域]]])
參數描述:
名稱cookie名稱
值可選,cookie值
Expire可選,過期時間,時間戳格式
Path可選,服務器端有效路徑,/表示整個域名有效,默認為當前設置cookie時頁面的路徑。
Domain可選,cookie有效的域名。
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
setcookie("用戶名"," nostop ",time()+3600);//設置壹個名為username的cookie,值為xiaoli,1小時後過期。如果還省略了時間,則cookie將在會話結束後(通常在瀏覽器關閉時)失效。
& gt
Cookie以某種格式存儲在用戶計算機的特定位置。
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
setcookie("username "," nostop ",time()+3600,"/",. example . com ");//此cookie在example.com域名的/path下有效(即整個站點有效)。
& gt
讀取cookie
PHP有壹個內置的$_COOKIE變量來訪問設置的COOKIE值。
示例:
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
echo $_COOKIE["用戶名"];//nostop
& gt
銷毀cookie
您可以通過將cookie過期時間設置為以前的時間點來銷毀cookie:
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
setcookie("用戶名","",time()-3600);
& gt
餅幹預防措施
在1和SetCookie()之前不能有任何html輸出,甚至空格和空行。
2.在SetCookie()之後,如果在當前頁面上調用echo $_COOKIE["name"],將不會有輸出。在Cookie過期之前,您必須刷新或轉到下壹頁來查看Cookie值。
3.由於cookie信息存儲在用戶的電腦中,因此有可能偽造或修改cookie,從而導致cookie作弊。壹般來說,可以對cookies的值進行加密,以防止作弊。讀取cookie時,只需解密即可。
4.Cookies保存在客戶端。如果用戶禁用了cookies,妳的cookies自然就沒有效果了!
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
setcookie('用戶名',' nostop ',time()+3600);//創建cookie
if(isset($ _ cookie[" username "]){//使用isset()函數檢查cookie變量是否已設置。
回聲“妳好!”。$_COOKIE["用戶名"];//妳好!Nostop讀取cookie
}否則{
回顯“請登錄”;
}
& gt