cookie是一種在浏覽器遠端存儲數據並以此來跟蹤和識別用戶的機制。簡單的說,cookie是web服務器暫時存儲在用戶硬盤上的一個文件夾,並隨時被web浏覽器讀取。當用戶再次訪問web網站的時候,網站通過獲取cookie記錄用戶的特定訪問信息(如:上次訪問的位置,花費的時間,用戶名和密碼) ,從而迅速做出相應,比如不需要用戶輸入密碼就可以登錄。
文本文件的格式如下:用戶名@網站地址[數字].txtcookie 的功能主要有以下幾個方面:
1,記錄訪客的某些信息。如可以利用cookie記錄用戶的訪問頁面的次數,或者是用戶曾經輸入的信息。另外,某些網站可以自動記錄上次方可登錄的用戶名。
2,在頁面間傳遞變量。浏覽器並不會保存當前頁面的任何變量信息,當頁面被關閉時,頁面上的所有變量信息將隨之消失。如果聲明一個變量id=8,要把這個變量傳遞到另一個頁面,可以先把這個變量以cookie的形式保存下來,然後在下一個頁面讀取cookie中該變量的值。
3,將索要查看的Internet頁存儲在cookie臨時文件夾中,可以提高以後浏覽器的訪問速度。
在php中通過setcookie()函數創建cookie。cookie是HTTP頭標的組成部分而頭標必須在頁面其他內容之前發送,他必須最先輸出。若在setcookie()函數之前輸出一個HTML標記,或者echo語句,甚至一個空行都會導致程序出錯。
語法格式如下:
bool setcookie(string name[,string value[,int explre[,string path[,string domain[,int secure]]]]])
setcookie()函數的參數說明如下:
使用setcookie()函數創建cookie 示例代碼如下:
cookie的讀取
在php中,可以直接使用全局數組$_COOKIE[]來讀取浏覽器的cookie的值。
使用print_r()函數讀取cookie的變量。示例代碼如下:
運行結果如下:
刪除cookie
刪除cookie主要是使用setcookie函數來實現的,就是將cookie的失效時間減1秒,如題如下:
setcookie(“”visittime),time()-1);
cookie 的生命周期
如果cookie不設定時間,就表示它的生命周期為浏覽器會話的期間,只要關閉浏覽器,那麼cookie就會被刪除。這種cookie被稱為會話cookie,一般不保存在硬盤上,而是保存在內存中。
如果cookie設定失效時間,那麼浏覽器會把cookie保存到硬盤中,再次打開浏覽器時cookie仍然後笑,直到cookie的有效期超時。
浏覽器最多允許存儲的cookie文件為300個,而且每個cookie文件最大支持容量為4k,每個域名最多支持20個cookie。如果達到限制時,浏覽器就會隨機的刪除cookies。