php之cookie
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
用。這種限制與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