1. 程式人生 > >php之cookie

php之cookie

phpcookie

Cookie介紹:

Cookie是瀏覽用戶訪問某些網站時、web服務器在客戶端寫入的一些小文件、換句話說就是Cookie是存放在客戶端的內存或磁盤裏.

Cookie可以記錄用戶瀏覽的個人信息、像用戶訪問網站時間、做過哪些事、購物車內有商品變動等、這樣、用戶下次再訪問網站時、就可以直接從Cookie調用以前的數據。

Cookie優點:

1、Cookie默認的生命周期起始於瀏覽器開始運行時、結束於瀏覽器終止時、此時cookie是存放在客戶端的內存中、你還可以設置cookie的生命周期、以秒數計算、將它寫入客戶端的磁盤裏、這樣就不會擔心cookie自動消失。

2、Cookie存放在客戶端的內存或磁盤裏、不會占用web服務器的資源。

3、cookie可以記錄用戶瀏覽的個人信息、網站可以根據Cookie記錄信息、設計出個人風格的網頁。

Cookie缺點:

1、如果有不支持cookie的瀏覽器、或者瀏覽用戶禁止web服務器在客戶端寫入cooke、那麽cookie就會失效。

2、cookie存放在客戶端、可能會被瀏覽用戶刪除或拒絕寫入。

3、cookie可能會造成安全上的威脅、導致個人用戶信息竊取。

cookie工作原理

當客戶訪問某個網站時,在PHP中可以使用setcookie函數生成一個cookie,系統經處理把這

個cookie發送到客戶端並保存在c:\Documents and Settings\用戶名\Cookies

目錄下。cookie是HTTP標頭的一部分,因此setcookie函數必須在任何內容送到瀏覽器之前調

用。這種限制與header()函數一樣。當客戶再次訪問該網站時,瀏覽器會
自動把c:\Documents and Settings\用戶名\Cookies目錄下與該站點對應的cookie發送到服

務器,服務器則把從客戶端傳來的cookie將自動地轉化成一個PHP變量。
通過$_COOKIE[‘xxx‘]讀取客戶端發來的cookie。

寫入Cookie

Setcookie(string name[, string value[, int expire[, string path[, string domain[, bool secure ]]]]]);

Setrawcookie(string name[, string value[, int expire[, string path[, string domain[, bool secure ]]]]]);

name:用來設置cookie的名稱、不能省略。

value:用來設置cookie的值、可以為"",表示刪除cookie.

expire:用來設置cooke的生存時間、例如:time()+60*60*24.以秒為單位。

path:用來設置cookie在客戶端的存放路徑、xp路徑在C:\Documents and Settings\Administrator\Cookies.不同操作系統不一樣,

這個文件是隱藏的。

domain:用於設置能夠訪問cookie的域名。

secure:用於設置是否由安全套接層協議層SSL,HTTPS傳送cookie,默認是false.

例如:

one.php

<?php

setcookie("username", "blog.51ou.com", time()+60*60*24); //保存時間為一天

setcookie("userage", 22, time()+60*60);//保存時間為一個小時

?>

這樣當我們在瀏覽器打開one.php、然後在C:\Documents and Settings\Administrator\Cookies 會找到相應的cookie信息、這裏cookie

都是經過編碼的、如果想看到cookie的值可以使用setrawcookie

例如:

two.php

<?php

setcookie("name", "51ou.com", time()+60*60*24); //保存時間為一天

setcookie("age", 22, time()+60*60);//保存時間為一個小時

?>

這樣當我們在瀏覽器打開two.php、然後在C:\Documents and Settings\Administrator\Cookies 會找到相應的明碼cookie信息。

此外、cookie必須放在任何輸出動作的前面、不然會出錯、如果非要這樣做可以用這樣一對函數:ob_start(); ob_end_flush();

例如:

three.php

<?php

ob_start();//如果前面沒有這個函數在setcookie有echo就會出錯、

echo "blog.51ou.com";

setcookie("username", "ssw");

ob_end_flush();

?>

訪問Cookie

當我們設置好cookie後我們可以用全局這量$_COOKIE[‘‘]來訪問cookie

例如:

four.php

<?php

setcookie("sitename", "blog.51ou.com");

echo $_COOKIE[‘sitename‘];

?>

在瀏覽器打開four.php你就會看到blog.51ou.com.

OK到此Cookie到止結束、


php之cookie