首頁 後端開發 php教程 php cookie操作詳解(設定、使用、刪除)

php cookie操作詳解(設定、使用、刪除)

Jul 25, 2016 am 08:59 AM

本文介紹下,在PHP設定、使用、刪除Cookie,及Cookie的一些限制的相關內容,有需要的朋友,可以參考下。

1、設定Cookie 在php中設定cookie,使用SetCookie函數。 注意:Cookie是HTTP協定頭的一部分,用於瀏覽器和伺服器之間傳遞訊息,所以必須在任何屬於HTML檔案本身的內容輸出之前呼叫Cookie函數。

SetCookie函數定義了一個Cookie,並且把它附加在HTTP頭的後面,SetCookie函數的原型如下:

int SetCookie(string name, string value, int expire, string path, string domain, int secure);

除了name之外所有的參數都是可選的。 value,path,domain三個參數可以用空字串代換,表示沒有設定;expire 和 secure兩個參數是數值型的,可以用0表示。 expire參數是一個標準的Unix時間標記,可以用time()或mktime()函數取得,以秒為單位。 secure參數表示這個Cookie是否透過加密的HTTPS協定在網路上傳輸。

目前設定的Cookie不是立即生效的,而是要等到下一個頁面時才能看到。這是由於在設定的這個頁面裡Cookie由伺服器傳遞給客戶瀏覽器,在下一個頁面瀏覽器才能把Cookie從客戶的機器取出傳回伺服器的原因。 在同一個頁面設定Cookie,實際上是從後往前,所以如果要在插入一個新的Cookie之前刪除一個,你必須先寫插入的語句,再寫刪除的語句,否則可能會出現不想要的結果。

來看幾個SetCookie()函數設定Cookie的例子。

--簡單的: SetCookie("MyCookie", "Value of MyCookie");

--帶失效時間的: SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小時

--全面型: SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".jbxue.com", 1);

如果網站有幾個不同的目錄,只用不帶路徑的Cookie的話,在一個目錄下的頁面裡設的Cookie在另一個目錄的頁面裡是看不到的。 Cookie是面向路徑的。 即使沒有指定路徑,WEB伺服器會自動傳遞目前的路徑給瀏覽器的,指定路徑會強制伺服器使用設定的路徑。 解決方法: 呼叫SetCookie時加上路徑和域名,域名的格式可以是“bbs.it-home.org”,也可是 “.jbxue.com”。

SetCookie函式裡表示value的部分,傳遞時會自動被encode。 如果value的值是“test value”在傳遞時變成了“test%20value”,跟URL的方法一樣。 這對於程式來說是透明的,PHP接收Cookie的值時會自動將其decode。

設定同名的多個Cookie,要用陣列:

SetCookie("CookieArray[]", "Value 1"); SetCookie("CookieArray[]", "Value 2"); 或 SetCookie("CookieArray[0]", "Value 1"); SetCookie("CookieArray[1]", "Value 2");

2、接收與處理Cookie

PHP對Cookie的接收和處理的支援非常好,是完全自動的,跟FORM變數的原則一樣,特別簡單。 例如設定一個名為MyCookier的Cookie,PHP會自動從WEB伺服器接收的HTTP頭裡把它分析出來,並形成一個與普通變數一樣的變量,名為 $myCookie,這個變數的值就是Cookie的值。 數組同樣適用。

另外一個辦法是引用PHP的全域變數$HTTP_COOKIE_VARS陣列。

分別舉例如下:(假設這些都在以前的頁面裡設定過了,而且仍然有效)

echo $MyCookie; echo $CookieArray[0]; echo count($CookieArray); echo $HTTP_COOKIE_VARS["MyCookie"];

就這麼簡單。

3、刪除Cookie 要刪除一個已經存在的Cookie,有兩個方法: 一是呼叫只帶有name參數的SetCookie,那麼名為這個name的Cookie將會被從關係戶機上刪除; 另一個方法是設定Cookie的失效時間為 time()或time()-1,那麼這個Cookie在這個頁面的瀏覽完後就被刪除了(其實是失效了)。 注意:當一個Cookie被刪除時,它的值在當前頁在仍然有效的。

4、使用Cookie的限制 首先,必須在HTML檔案的內容輸出之前設定;

其次,不同的瀏覽器對Cookie的處理不一致辭,且有時會出現錯誤的結果。例如:MS IE+SERVICE PACK 1無法正確處理有網域名稱和路徑的Cookie,Netscape Communicator 4.05和MS IE 3.0無法正確處理不含路徑和時間的Cookie。至於MS IE 5 好像不能處理有網域名稱、路徑和時間的Cookie。這是我在設計本站的頁面時發現的。

第三個限制是在客戶端的。 一個瀏覽器能創建的Cookie數量最多為30個,且每個不能超過4KB,每個WEB站點能設定的Cookie總數不能超過20個。

以上就是本節要介紹的有關php cookie操作的全部內容,我們詳細介紹了php中cookie的設定、使用、刪除的方法,以及一些要注意的問題。 希望對大家有幫助。



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

11個最佳PHP URL縮短腳本(免費和高級) 11個最佳PHP URL縮短腳本(免費和高級) Mar 03, 2025 am 10:49 AM

11個最佳PHP URL縮短腳本(免費和高級)

Instagram API簡介 Instagram API簡介 Mar 02, 2025 am 09:32 AM

Instagram API簡介

在Laravel中使用Flash會話數據 在Laravel中使用Flash會話數據 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash會話數據

構建具有Laravel後端的React應用程序:第2部分,React 構建具有Laravel後端的React應用程序:第2部分,React Mar 04, 2025 am 09:33 AM

構建具有Laravel後端的React應用程序:第2部分,React

簡化的HTTP響應在Laravel測試中模擬了 簡化的HTTP響應在Laravel測試中模擬了 Mar 12, 2025 pm 05:09 PM

簡化的HTTP響應在Laravel測試中模擬了

php中的捲曲:如何在REST API中使用PHP捲曲擴展 php中的捲曲:如何在REST API中使用PHP捲曲擴展 Mar 14, 2025 am 11:42 AM

php中的捲曲:如何在REST API中使用PHP捲曲擴展

在Codecanyon上的12個最佳PHP聊天腳本 在Codecanyon上的12個最佳PHP聊天腳本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12個最佳PHP聊天腳本

宣布 2025 年 PHP 形勢調查 宣布 2025 年 PHP 形勢調查 Mar 03, 2025 pm 04:20 PM

宣布 2025 年 PHP 形勢調查

See all articles