php cookie之學習筆記

來源:互聯網
上載者:User

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是絕對不會跟著發送的。

相關文章

聯繫我們

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