程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> cookie工作原理

cookie工作原理

編輯:關於PHP編程

  • 當客戶訪問某個基於PHP技術的網站時,在PHP中可以使用setcookie()函數生成一個cookie,系統經處理把這個cookie發送到客戶端並保存在C:\Documents andSettings\用戶名\Cookies目錄下。
  • cookie是HTTP標頭的一部分,因此setcookie()函數必須在HTML本身的任何內容送到浏覽器之前調用。這種限制與header()函數一樣(如需了解head()函數,請自行查閱)。
  • 當 客戶再次訪問該網站時,浏覽器會自動把C:\DocumentsandSettings\用戶名\Cookies目錄下與該站點對應的cookie發送到 服務器,服務器則把從客戶端傳來的cookie將自動地轉化成一個PHP變量。在PHP5中,客戶端發來的cookie將被轉換成全局變量。你可以通 過$_COOKIE[‘xxx’]讀取。

定義一個cookie

  • 設置cookie:
  • 語法:boolsetcookie(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);

本cookie函數可以有6個屬性,常用的有3個參數。

$value="the best way is by yourself";

setcookie("cookiename",$value,time()+60*60*24*7);

PHP對cookie有很好的支持,和form表單一樣,接收的時候PHP會自動從web服務器接收HTTP頭並且它。接收的時候和表單接收一樣,用$_COOKIE[“cookiename”]或者$HTTP_COOKIE_VARS[“cookiename”](不提倡使用)

如果網站有幾個不同的文件目錄,使用不帶路徑的cookie,那麼只能在設置cookie的文件所在路徑下訪問到此cookie。如果指定路徑,則按照設置時的路徑作為訪問cookie的指定路徑。

創建cookie數組:

setcookie("CookieArray[0]","Value1");

setcookie("CookieArray[1]","Value2");

setcookie("CookieArray['one']","Value1");

setcookie("CookieArray['two']","Value2");

<?php

setcookie("cookie[three]","cookiethree");

setcookie("cookie[two]","cookietwo");

setcookie("cookie[one]","cookieone");

//刷新頁面後,顯示出來

if(isset($_COOKIE['cookie'])){

foreach($_COOKIE['cookie']as$name=>$value){

echo"$name:$value<br/>\n";

}

}

?>

刪除cookie

     1、調用只帶有name參數的setcookie,那麼名為這個name的cookie將被從客戶機上刪掉;

setcookie(“MyCookie”);//刪除MyCookie

    2、過期時間就行,那麼這個Cookie在這個頁面的浏覽完之後就被刪除了(其實是失效了)。

例如:

setcookie(“MyCookie”,”Value”,time()-1);

//刪除MyCookie。

要注意:當一個Cookie被刪除時,它的值在當前頁仍然有效。如果要把cookie設置成在浏覽器關閉後就失效。那麼可以直接把expiretime設為0,或者不設置此值。

例如:setcookie(“name”,”value”,0)。

cookie注意事項

  • 1、setcookie()之前不能有任何html輸出,就是空格,空白行都不行,必須在html文件的內容輸出前設置
  • 2、setcookie()後,你在當前頁調用echo$_COOKIE[“name”]不會有輸出。必須刷新或到下一個頁面才可以看到cookie值。
  • 3、不用浏覽器對cookie處理不同。客戶端可以禁用cookie,浏覽器也會限制cookie的數量。一個浏覽器能創建的cookie數量最多為300個,並且每個不能超過4KB,每個WEB站點能設置的cookie總數不能超過20個。
  • 4、cookie是保存在客戶端的,用戶禁用了cookie,你的cookie自然也就沒作用啦!因此,避免過度依賴cookie,要先想好如果cookie被禁用時的解決方案,以備萬一。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved