php cookie工作原理與cookie執行個體詳解_PHP教程

來源:互聯網
上載者:User
在php 中cookie是我們常用到的,但是可能很多朋友都不知道cookie是怎麼工作的,下面小編來給大家整理一下關於php cookie工作原理與一些對於cookie讀寫操作執行個體。


Cookie和工作階段狀態

做BS開發,這兩個概念必不可少,先來個大概瞭解,沒有實際應用很難深入,深入看參考地址!
什麼是 Cookie?
Cookie 是一小段文本資訊,伴隨著使用者請求和頁面在 Web 服務器和瀏覽器之間傳遞。使用者每次訪問網站時,Web 應用程式都可以讀取 Cookie 包含的資訊。 Cookie 的基本工作原理如果使用者再次訪問網站上的頁面,當該使用者輸入 URLwww.*****.com時,瀏覽器就會在本地硬碟上尋找與該 URL 相關聯的 Cookie。如果該 Cookie 存在,瀏覽器就將它與頁面請求一起發送到您的網站。

Cookie 有哪些用途?
最根本的用途是:Cookie 能夠協助 Web 網站儲存有關訪問者的資訊。更概括地說,Cookie 是一種保持Web 應用程式連續性(即執行“狀態管理”)的方法.使 Web 網站記住您.

•當客戶訪問某個基於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個參數。

1.執行個體:

代碼如下 複製代碼

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

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

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

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

建立cookie數組:
1.其一:

代碼如下 複製代碼

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

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

1.其二:

代碼如下 複製代碼

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

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

1.setcookie()中使用數組

代碼如下 複製代碼

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.要刪除一個已經存在的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被禁用時的解決方案,以備萬一。

http://www.bkjia.com/PHPjc/633059.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633059.htmlTechArticle在php 中cookie是我們常用到的,但是可能很多朋友都不知道cookie是怎麼工作的,下面小編來給大家整理一下關於php cookie工作原理與一些對於...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.