php中cookie的工作原理,cookie工作原理_PHP教程
當(dāng)客戶訪問某個基于PHP技術(shù)的網(wǎng)站時,在PHP中可以使用setcookie()函數(shù)生成一個cookie,系統(tǒng)經(jīng)處理把這個cookie發(fā)送到客戶端并保存在C:\Documents andSettings\用戶名\Cookies目錄下。
cookie是HTTP標(biāo)頭的一部分,因此setcookie()函數(shù)必須在HTML本身的任何內(nèi)容送到瀏覽器之前調(diào)用。這種限制與header()函數(shù)一樣(如需了解head()函數(shù),請自行查閱)。
當(dāng) 客戶再次訪問該網(wǎng)站時,瀏覽器會自動把C:\DocumentsandSettings\用戶名\Cookies目錄下與該站點對應(yīng)的cookie發(fā)送到 服務(wù)器,服務(wù)器則把從客戶端傳來的cookie將自動地轉(zhuǎn)化成一個PHP變量。在PHP5中,客戶端發(fā)來的cookie將被轉(zhuǎn)換成全局變量。你可以通 過$_COOKIE[‘xxx’]讀取。
定義一個cookie
設(shè)置cookie:
語法:boolsetcookie(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);
本cookie函數(shù)可以有6個屬性,常用的有3個參數(shù)。
$value="the best way is by yourself";
setcookie("cookiename",$value,time()+60*60*24*7);
PHP對cookie有很好的支持,和form表單一樣,接收的時候PHP會自動從web服務(wù)器接收HTTP頭并且它。接收的時候和表單接收一樣,用$_COOKIE[“cookiename”]或者$HTTP_COOKIE_VARS[“cookiename”](不提倡使用)
如果網(wǎng)站有幾個不同的文件目錄,使用不帶路徑的cookie,那么只能在設(shè)置cookie的文件所在路徑下訪問到此cookie。如果指定路徑,則按照設(shè)置時的路徑作為訪問cookie的指定路徑。
創(chuàng)建cookie數(shù)組:
setcookie("CookieArray[0]","Value1");
setcookie("CookieArray[1]","Value2");
setcookie("CookieArray['one']","Value1");
setcookie("CookieArray['two']","Value2");
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
\n";
}
}
?>
刪除cookie
1、調(diào)用只帶有name參數(shù)的setcookie,那么名為這個name的cookie將被從客戶機(jī)上刪掉;
setcookie(“MyCookie”);//刪除MyCookie
2、過期時間就行,那么這個Cookie在這個頁面的瀏覽完之后就被刪除了(其實是失效了)。
例如:
setcookie(“MyCookie”,”Value”,time()-1);
//刪除MyCookie。
要注意:當(dāng)一個Cookie被刪除時,它的值在當(dāng)前頁仍然有效。如果要把cookie設(shè)置成在瀏覽器關(guān)閉后就失效。那么可以直接把expiretime設(shè)為0,或者不設(shè)置此值。
例如:setcookie(“name”,”value”,0)。
cookie注意事項
1、setcookie()之前不能有任何html輸出,就是空格,空白行都不行,必須在html文件的內(nèi)容輸出前設(shè)置
2、setcookie()后,你在當(dāng)前頁調(diào)用echo$_COOKIE[“name”]不會有輸出。必須刷新或到下一個頁面才可以看到cookie值。
3、不用瀏覽器對cookie處理不同。客戶端可以禁用cookie,瀏覽器也會限制cookie的數(shù)量。一個瀏覽器能創(chuàng)建的cookie數(shù)量最多為300個,并且每個不能超過4KB,每個WEB站點能設(shè)置的cookie總數(shù)不能超過20個。
4、cookie是保存在客戶端的,用戶禁用了cookie,你的cookie自然也就沒作用啦!因此,避免過度依賴cookie,要先想好如果cookie被禁用時的解決方案,以備萬一。
http://www.bkjia.com/PHPjc/738550.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/738550.htmlTechArticle當(dāng)客戶訪問某個基于PHP技術(shù)的網(wǎng)站時,在PHP中可以使用setcookie()函數(shù)生成一個cookie,系統(tǒng)經(jīng)處理把這個cookie發(fā)送到客戶端并保存在C:\Documen...
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的php中cookie的工作原理,cookie工作原理_PHP教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 数据库 文件夹_mysql
- 下一篇: 发那科攻丝回退参数_乐享:发那科MF选配