PHP Cookie學習筆記_php技巧

來源:互聯網
上載者:User

什麼是Cookie

Cookie是一種在遠程瀏覽器端儲存資料並以此來跟蹤和識別使用者的機制。簡單地說,Cookie是Web伺服器暫時儲存在使用者硬碟上的一個文字檔,並隨後被Web瀏覽器讀取。當使用者再次訪問Web網站時,網站通過讀取Cookies檔案記錄這位訪客的特定資訊(如上次訪問的位置、花費的時間、使用者名稱和密碼等),從而迅速作出響應,如在頁面中不需要輸入使用者的ID和密碼即可直接登入網站等。
文字檔的命令格式如下:

使用者名稱@網站地址[數字].txt 

Cookie的功能

Web伺服器可以應用Cookies包含資訊的任意性來篩選並經常性維護這些資訊,以判斷在HTTP傳輸中的狀態。Cookie常用於以下3個方面:
•記錄訪客的某些資訊。如可以利用Cookie記錄使用者訪問網頁的次數,或者記錄訪客曾經輸入過的資訊,另外,某些網站可以使用Cookie自動記錄訪客上次登入的使用者名稱。
•在頁面之間傳遞變數。瀏覽器並不會儲存當前頁面上的任何變數資訊,當頁面被關閉時頁面上的所有變數資訊將隨之消失。如果使用者聲明一個變數id=8,要把這個變數傳遞到另一個頁面,可以把變數id以Cookie形式儲存下來,然後在下一頁通過讀取該Cookie來擷取變數的值。
 •將所查看的Internet頁儲存在Cookies臨時檔案夾中,可以提高以後瀏覽的速度。

建立Cookie

在PHP中通過setcookie()函數建立Cookie。文法格式如下:

複製代碼 代碼如下:
bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])

讀取Cookie

在PHP中可以直接通過超級全域數組$_COOKIE[]來讀取瀏覽器端的Cookie值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"  /> <title>PHP語言基礎</title></head><body><?phpdate_default_timezone_set("PRC");header("Content-Type:text/html; charset=gb2312");if (!isset($_COOKIE["visittime"])) { setcookie("visittime", date("y-m-d H:i:s")); echo "這是第一次儲存Cookie"."<br>";} else { setcookie("visittime", date("y-m-d H:i:s"), time() + 60); echo "上次訪問時間為:" . $_COOKIE["visittime"]; echo "<br>";}echo "本次訪問時間:" . date("y-m-d H:i:s");?></body></html>

第一次運行結果:
這是第一次儲存Cookie
本次訪問時間:16-07-16 08:26:25

第二次運行結果:
上次訪問時間為:16-07-16 08:26:25
本次訪問時間:16-07-16 08:27:25 

上述代碼,先通過isset()函數檢測Cookie檔案是否存在,不存在通過setcookie()函數建立一個Cookie檔案,如果存在設定Cookie的失效時間為60秒。

刪除Cookie

當Cookie被建立後,如果沒有設定它的失效時間,其Cookie檔案會在關閉瀏覽器時被自動刪除。如果要在關閉瀏覽器之前刪除Cookie檔案,方法有兩種:一種是使用setcookie()函數刪除,另一種是在瀏覽器中手動刪除Cookie。下面分別進行介紹。

1.使用setcookie()函數刪除Cookie

刪除Cookie和建立Cookie的方式基本類似,刪除Cookie也使用setcookie()函數。刪除Cookie只需要將setcookie()函數中的第二個參數設定為空白值,將第3個參數Cookie的到期時間設定為小於系統的目前時間即可。

例如,將Cookie的到期時間設定為目前時間減1秒,代碼如下:

setcookie("name", "", time()-1);

在上面的代碼中,time()函數返回以秒錶示的目前時間戳,把到期時間減1秒就會得到過去的時間,從而刪除Cookie。

2.在瀏覽器中手動刪除Cookie

在使用Cookie時,Cookie自動產生一個文字檔儲存在IE瀏覽器的Cookies臨時檔案夾中。在瀏覽器中刪除Cookie檔案是非常便捷的方法。

Cookie的生命週期

如果Cookie不設定時間,就表示它的生命週期為瀏覽器會話的期間,只要關閉IE瀏覽器,Cookie就會自動消失。這種Cookie被稱為會話Cookie,一般不儲存在硬碟上,而是儲存在記憶體中。

如果設定了到期時間,那麼瀏覽器會把Cookie儲存到硬碟中,再次開啟IE瀏覽器時會依然有效,直到它的有效期間逾時。

雖然Cookie可以長期儲存在用戶端瀏覽器中,但也不是一成不變的。因為瀏覽器最多允許儲存300個Cookie檔案,而且每個Cookie檔案支援最大容量為4KB;每個網域名稱最多支援20個Cookie,如果達到限制時,瀏覽器會自動地隨機刪除Cookies。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.