程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP Cookie學習筆記,phpcookie學習筆記

PHP Cookie學習筆記,phpcookie學習筆記

編輯:關於PHP編程

PHP Cookie學習筆記,phpcookie學習筆記


什麼是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>
<?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>

第一次運行結果:
這是第一次保存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。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持幫客之家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved