PHP Cookie學習筆記
什么是Cookie
Cookie是一種在遠程瀏覽器端存儲數(shù)據(jù)并以此來跟蹤和識別用戶的機制。簡單地說,Cookie是Web服務(wù)器暫時存儲在用戶硬盤上的一個文本文件,并隨后被Web瀏覽器讀取。當用戶再次訪問Web網(wǎng)站時,網(wǎng)站通過讀取Cookies文件記錄這位訪客的特定信息(如上次訪問的位置、花費的時間、用戶名和密碼等),從而迅速作出響應(yīng),如在頁面中不需要輸入用戶的ID和密碼即可直接登錄網(wǎng)站等。
文本文件的命令格式如下:
用戶名@網(wǎng)站地址[數(shù)字].txt
Cookie的功能
Web服務(wù)器可以應(yīng)用Cookies包含信息的任意性來篩選并經(jīng)常性維護這些信息,以判斷在HTTP傳輸中的狀態(tài)。Cookie常用于以下3個方面:
•記錄訪客的某些信息。如可以利用Cookie記錄用戶訪問網(wǎng)頁的次數(shù),或者記錄訪客曾經(jīng)輸入過的信息,另外,某些網(wǎng)站可以使用Cookie自動記錄訪客上次登錄的用戶名。
•在頁面之間傳遞變量。瀏覽器并不會保存當前頁面上的任何變量信息,當頁面被關(guān)閉時頁面上的所有變量信息將隨之消失。如果用戶聲明一個變量id=8,要把這個變量傳遞到另一個頁面,可以把變量id以Cookie形式保存下來,然后在下一頁通過讀取該Cookie來獲取變量的值。
•將所查看的Internet頁存儲在Cookies臨時文件夾中,可以提高以后瀏覽的速度。
創(chuàng)建Cookie
在PHP中通過setcookie()函數(shù)創(chuàng)建Cookie。語法格式如下:

讀取Cookie
在PHP中可以直接通過超級全局數(shù)組$_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語言基礎(chǔ)</title>
</head>
<body>
<?php
date_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>
第一次運行結(jié)果:
這是第一次保存Cookie
本次訪問時間:16-07-16 08:26:25
第二次運行結(jié)果:
上次訪問時間為:16-07-16 08:26:25
本次訪問時間:16-07-16 08:27:25
上述代碼,先通過isset()函數(shù)檢測Cookie文件是否存在,不存在通過setcookie()函數(shù)創(chuàng)建一個Cookie文件,如果存在設(shè)置Cookie的失效時間為60秒。
刪除Cookie
當Cookie被創(chuàng)建后,如果沒有設(shè)置它的失效時間,其Cookie文件會在關(guān)閉瀏覽器時被自動刪除。如果要在關(guān)閉瀏覽器之前刪除Cookie文件,方法有兩種:一種是使用setcookie()函數(shù)刪除,另一種是在瀏覽器中手動刪除Cookie。下面分別進行介紹。
1.使用setcookie()函數(shù)刪除Cookie
刪除Cookie和創(chuàng)建Cookie的方式基本類似,刪除Cookie也使用setcookie()函數(shù)。刪除Cookie只需要將setcookie()函數(shù)中的第二個參數(shù)設(shè)置為空值,將第3個參數(shù)Cookie的過期時間設(shè)置為小于系統(tǒng)的當前時間即可。
例如,將Cookie的過期時間設(shè)置為當前時間減1秒,代碼如下:
setcookie("name", "", time()-1);
在上面的代碼中,time()函數(shù)返回以秒表示的當前時間戳,把過期時間減1秒就會得到過去的時間,從而刪除Cookie。
2.在瀏覽器中手動刪除Cookie
在使用Cookie時,Cookie自動生成一個文本文件存儲在IE瀏覽器的Cookies臨時文件夾中。在瀏覽器中刪除Cookie文件是非常便捷的方法。
Cookie的生命周期
如果Cookie不設(shè)定時間,就表示它的生命周期為瀏覽器會話的期間,只要關(guān)閉IE瀏覽器,Cookie就會自動消失。這種Cookie被稱為會話Cookie,一般不保存在硬盤上,而是保存在內(nèi)存中。
如果設(shè)置了過期時間,那么瀏覽器會把Cookie保存到硬盤中,再次打開IE瀏覽器時會依然有效,直到它的有效期超時。
雖然Cookie可以長期保存在客戶端瀏覽器中,但也不是一成不變的。因為瀏覽器最多允許存儲300個Cookie文件,而且每個Cookie文件支持最大容量為4KB;每個域名最多支持20個Cookie,如果達到限制時,瀏覽器會自動地隨機刪除Cookies。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 詳解cookie驗證的php應(yīng)用的一種SSO解決辦法
- PHP與JavaScript針對Cookie的讀寫、交互操作方法詳解
- PHP利用Cookie設(shè)置用戶30分鐘未操作自動退出功能
- PHP中Cookie的使用詳解(簡單易懂)
- php及codeigniter使用session-cookie的方法(詳解)
- PHP如何讀取由JavaScript設(shè)置的Cookie
- PHP設(shè)置Cookie的HTTPONLY屬性方法
- php cookie用戶登錄的詳解及實例代碼
- php頁面跳轉(zhuǎn)session cookie丟失導致不能登錄等問題的解決方法
- php cookie 詳解使用實例
- PHP中cookie知識點學習
相關(guān)文章
解析使用ThinkPHP應(yīng)該掌握的調(diào)試手段
本篇文章是對使用ThinkPHP應(yīng)該掌握的調(diào)試手段進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP面向?qū)ο髮W習之parent::關(guān)鍵字
在PHP中不能定義重名的函數(shù),也包括不能再同一個類中定義重名的方法,所以也就沒有方法重載。下面這篇文章主要給大家介紹了PHP面向?qū)ο笾畃arent::關(guān)鍵字的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
解析file_get_contents模仿瀏覽器頭(user_agent)獲取數(shù)據(jù)
php從csv文件讀取數(shù)據(jù)并輸出到網(wǎng)頁的方法
PHP中通過HTTP_USER_AGENT判斷是否為手機移動終端的函數(shù)代碼

