溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php cookie工作原理是什么

發(fā)布時(shí)間:2021-08-11 19:37:51 來(lái)源:億速云 閱讀:141 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“php cookie工作原理是什么”,在日常操作中,相信很多人在php cookie工作原理是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”php cookie工作原理是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

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

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

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

做BS開(kāi)發(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ì)在本地硬盤(pán)上查找與該 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)一。

到此,關(guān)于“php cookie工作原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI