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

php cookie之學習筆記

編輯:關於PHP編程

cookie是所有程序中都會用到的一個會話,下邊我把我學習php cookie 的筆記分享給各位同學,本文章介紹了所有關於cookie入門篇的小技巧,有需要的同學可參考。

Cookie是什麼意思?

Cookie是用來存儲用戶名、密碼、訪問該站點的次數等。在訪問某個網站時,Cookie將html網頁發送到浏覽器中一個小段信息,以腳本的形式保存在客戶端的計算機上。

Cookie有什麼用?如果用服務器去記錄個用戶上站的次數,那麼長期積累下來數據必然十分龐大,對服務器來說負擔很中。因此,可以將數據存入到用戶自己的計算機中,等到需要時服務器再讀取用戶計算機上的Cookie提取數據,這樣一來服務器就不需要記錄大量的數據。


一般來說,Cookie通過HTTP Headers從服務器端返回浏覽器。首先,服務器端在響應中利用Set Cookie Header來創建一個Cookie。然後浏覽器在請求中通過Cookie Header包含這個已經創建的Cookie,並且將它返回至服務器,從而完成浏覽器的驗證。


Cookie的創建

php創建一個Cookie需要調用setcookie()函數,其結構形式如下:

bool setcookie(string name[,string value[,int expiration[,string path[,bool secure]]]])
參數name表示Cookie的名稱,其它參數可選;
參數value是存入Cookie的值;
參數expiration指定Cookie過期的時間;
參數path指定Cookie在服務器上的有效路徑,用來設置Cookie將被發送到服務器的那一個文件夾下;
參數secure指定Cookie是否通過安全的https鏈接發送。
php cookie實例代碼:

 代碼如下 復制代碼

<?php
 setcookie("c1","my name is Rose",time()+3600);
 /* 建立一個名稱為"c1"的cookie 過期時間為3600秒 */
?>

cookie的訪問

大多數變量只在內存占用空間,因此當php腳本終結時變量也從內存中被釋放清空。而Cookie可以將變量的值長期存儲到用戶計算機的硬盤,當我們需要調用此變量的值時,讀取該Cookie的名稱即可。

前面一節Cookie的創建已經建立了一個命名為”c1″的Cookie,下面我們來測試一下這個Cookie是否成功創建了。

php 訪問Cookie的實例:

 代碼如下 復制代碼

<?php
 echo "c1的Cookie值是 " .$_COOKIE['c1'] ."<br>";
 echo "c2的Cookie值是 " .$_COOKIE['c2'];
?>

Cookie的時間

如果沒有設置Cookie的有效時間,那麼當關閉浏覽器時Cookie就會消失。如果要保留Cookie,就必須給它設置一個有效的時間。

php Cookie時間設置方法:

 time()+秒數
time()表示目前用戶操作系統的時間,後面的秒數即是Cookie的有效時間。如果要制定一個特定的日期,可以使用mktime()函數,其結構形式如下:

 mktime(時,分,秒,月,日,年)
如果要立即刪除一個Cookie,可以將時間設置成過去的一個時間即可。

php Cookie時間設置例子:

 代碼如下 復制代碼 setcookie("a","10",time()-60); /* 設置時間為之前60秒,其值立即被刪 */
setcookie("a","10",time()+60); /* 設置有效時間為60秒 */
setcookie("a","10",mktime(0,0,0,11,1,2011)); /* 失效時間為2011年11月1日0點0分0秒 */

下面介紹一個利用Cookie設計的一個簡單統計程序:

 代碼如下 復制代碼

<?php
 $count=$_COOKIE['user'];
 $count++;
 setcookie("user",$count,time()+3600); 
 echo "這是你的第 $count 次訪問!";
?>

Cookie數組

我們同樣可以創建一個php cookie數組,下面通過實例介紹實現方法。

代碼:

 代碼如下 復制代碼 <?php
 setcookie('name[1]','Rose');
 setcookie('name[2]','John');
 setcookie('name[3]','Mikle');
 if(is_array($_COOKIE['name'])){ /* 判斷是否數組 */
  foreach($_COOKIE['name'] as $name=>$value) {
   echo "$name:$value<br>";
  }
 }
 else echo "不是數組";
?>


Cookie的限制

Cookie是用來存儲用戶浏覽網站的重要信息,為了防止亂用導致用戶的信息洩露,所以對Cookie作出一定的限制:

浏覽器記錄用戶cookie大小限制在4KB以內的容量;
浏覽器只保存某個站點服務器的Cookie數量限制在20個,如果超出這個數量,則之前保存的會被刪除。
每個用戶的浏覽器最多只能訪問300個Cookie。
用戶可以在浏覽器設置是否啟用Cookie存儲信息,因此,要使用Cookie存儲信息,必須先確認浏覽器中Cookie的功能是否已經打開。例如IE9浏覽器,打開“屬性”–“隱私”–“高級”選項,選中啟用即可:


提示:浏覽器創建了一個Cookie之後,對於每個針對該網站的請求都會在Header中帶著這個Cookie。而且浏覽器會一直發送,知道Cookie過期位置。不過對於其它網站的請求,Cookie是絕對不會跟著發送的。

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