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

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

工作原理與一些對(duì)于cookie讀寫操作實(shí)例。

Cookie和會(huì)話狀態(tài)

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

什么是 Cookie?

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

Cookie 有哪些用途?

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

•當(dāng)客戶訪問(wèn)某個(gè)基于PHP技術(shù)的網(wǎng)站時(shí),在PHP中可以使用setcookie()函數(shù)生成一個(gè)cookie,系統(tǒng)經(jīng)處理把這個(gè)cookie發(fā)送到客戶端并保存在C:Documents andSettings用戶名Cookies目錄下。

•cookie是HTTP標(biāo)頭的一部分,因此setcookie()函數(shù)必須在HTML本身的任何內(nèi)容送到瀏覽器之前調(diào)用。這種限制與header()函數(shù)一樣(如需了解head()函數(shù),請(qǐng)自行查閱)。

•當(dāng)客戶再次訪問(wèn)該網(wǎng)站時(shí),瀏覽器會(huì)自動(dòng)把C:DocumentsandSettings用戶名Cookies目錄下與該站點(diǎn)對(duì)應(yīng)的cookie發(fā)送到服務(wù)器,服務(wù)器則把從客戶端傳來(lái)的cookie將自動(dòng)地轉(zhuǎn)化成一個(gè)PHP變量。在PHP5中,客戶端發(fā)來(lái)的cookie將被轉(zhuǎn)換成全局變量。你可以通過(guò)$_COOKIE[‘xxx']讀取。

定義一個(gè)cookie

•設(shè)置cookie:

•語(yǔ)法:boolsetcookie(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);

本cookie函數(shù)可以有6個(gè)屬性,常用的有3個(gè)參數(shù)。

1.實(shí)例:

代碼如下:

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

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

1.接收和處理cookie

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

1.注意:

如果網(wǎng)站有幾個(gè)不同的文件目錄,使用不帶路徑的cookie,那么只能在設(shè)置cookie的文件所在路徑下訪問(wèn)到此cookie。如果指定路徑,則按照設(shè)置時(shí)的路徑作為訪問(wèn)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");

//刷新頁(yè)面后,顯示出來(lái)

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

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

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

}

}

?>

刪除cookie

1.要?jiǎng)h除一個(gè)已經(jīng)存在的cookie,有兩個(gè)辦法:

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

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

2、期時(shí)間就行,那么這個(gè)Cookie在這個(gè)頁(yè)面的瀏覽完之后就被刪除了(其實(shí)是失效了)。

例如:

代碼如下:

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

//刪除MyCookie。

要注意:當(dāng)一個(gè)Cookie被刪除時(shí),它的值在當(dāng)前頁(yè)仍然有效。如果要把cookie設(shè)置成在瀏覽器關(guān)閉后就失效。那么可以直接把expiretime設(shè)為0,或者不設(shè)置此值。

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

cookie注意事項(xiàng)

•1、setcookie()之前不能有任何html輸出,就是空格,空白行都不行,必須在html文件的內(nèi)容輸出前設(shè)置

•2、setcookie()后,你在當(dāng)前頁(yè)調(diào)用echo$_COOKIE[“name”]不會(huì)有輸出。必須刷新或到下一個(gè)頁(yè)面才可以看到cookie值。

•3、不用瀏覽器對(duì)cookie處理不同??蛻舳丝梢越胏ookie,瀏覽器也會(huì)限制cookie的數(shù)量。一個(gè)瀏覽器能創(chuàng)建的cookie數(shù)量最多為300個(gè),并且每個(gè)不能超過(guò)4KB,每個(gè)WEB站點(diǎn)能設(shè)置的cookie總數(shù)不能超過(guò)20個(gè)。

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

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

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:php cookie工作原理與實(shí)例詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)