php cookie工作原理與實例詳解
來源:易賢網(wǎng) 閱讀:736 次 日期:2016-08-12 16:31:20
溫馨提示:易賢網(wǎng)小編為您整理了“php cookie工作原理與實例詳解”,方便廣大網(wǎng)友查閱!

在php 中cookie是我們常用到的,但是可能很多朋友都不知道cookie是怎么工作的,下面小編來給大家整理一下關(guān)于php cookie

工作原理與一些對于cookie讀寫操作實例。

Cookie和會話狀態(tài)

做BS開發(fā),這兩個概念必不可少,先來個大概了解,沒有實際應(yīng)用很難深入,深入看參考地址!

什么是 Cookie?

Cookie 是一小段文本信息,伴隨著用戶請求和頁面在 Web 服務(wù)器和瀏覽器之間傳遞。用戶每次訪問站點時,Web 應(yīng)用程序都可以讀取 Cookie 包含的信息。 Cookie 的基本工作原理如果用戶再次訪問站點上的頁面,當(dāng)該用戶輸入 URLwww.*****.com時,瀏覽器就會在本地硬盤上查找與該 URL 相關(guān)聯(lián)的 Cookie。如果該 Cookie 存在,瀏覽器就將它與頁面請求一起發(fā)送到您的站點。

Cookie 有哪些用途?

最根本的用途是:Cookie 能夠幫助 Web 站點保存有關(guān)訪問者的信息。更概括地說,Cookie 是一種保持Web 應(yīng)用程序連續(xù)性(即執(zhí)行“狀態(tài)管理”)的方法.使 Web 站點記住您.

•當(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ù)。

1.實例:

代碼如下:

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

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

1.接收和處理cookie

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

1.注意:

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

創(chuàng)建cookie數(shù)組:

1.其一:

代碼如下:

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

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

1.其二:

代碼如下:

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

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

1.setcookie()中使用數(shù)組

代碼如下:

<?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.要刪除一個已經(jīng)存在的cookie,有兩個辦法:

1、調(diào)用只帶有name參數(shù)的setcookie,那么名為這個name的cookie將被從客戶機上刪掉;

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處理不同??蛻舳丝梢越胏ookie,瀏覽器也會限制cookie的數(shù)量。一個瀏覽器能創(chuàng)建的cookie數(shù)量最多為300個,并且每個不能超過4KB,每個WEB站點能設(shè)置的cookie總數(shù)不能超過20個。

•4、cookie是保存在客戶端的,用戶禁用了cookie,你的cookie自然也就沒作用啦!因此,避免過度依賴cookie,要先想好如果cookie被禁用時的解決方案,以備萬一。

以上就是對 PHP cookie 資料的整理,有需要的朋友可以參考下。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:php cookie工作原理與實例詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)