您好,登錄后才能下訂單哦!
Cookie介紹:
Cookie是瀏覽用戶訪問某些網(wǎng)站時、web服務(wù)器在客戶端寫入的一些小文件、換句話說就是Cookie是存放在客戶端的內(nèi)存或磁盤里.
Cookie可以記錄用戶瀏覽的個人信息、像用戶訪問網(wǎng)站時間、做過哪些事、購物車內(nèi)有商品變動等、這樣、用戶下次再訪問網(wǎng)站時、就可以直接從Cookie調(diào)用以前的數(shù)據(jù)。
Cookie優(yōu)點:
1、Cookie默認(rèn)的生命周期起始于瀏覽器開始運行時、結(jié)束于瀏覽器終止時、此時cookie是存放在客戶端的內(nèi)存中、你還可以設(shè)置cookie的生命周期、以秒數(shù)計算、將它寫入客戶端的磁盤里、這樣就不會擔(dān)心cookie自動消失。
2、Cookie存放在客戶端的內(nèi)存或磁盤里、不會占用web服務(wù)器的資源。
3、cookie可以記錄用戶瀏覽的個人信息、網(wǎng)站可以根據(jù)Cookie記錄信息、設(shè)計出個人風(fēng)格的網(wǎng)頁。
Cookie缺點:
1、如果有不支持cookie的瀏覽器、或者瀏覽用戶禁止web服務(wù)器在客戶端寫入cooke、那么cookie就會失效。
2、cookie存放在客戶端、可能會被瀏覽用戶刪除或拒絕寫入。
3、cookie可能會造成安全上的威脅、導(dǎo)致個人用戶信息竊取。
cookie工作原理
當(dāng)客戶訪問某個網(wǎng)站時,在PHP中可以使用setcookie函數(shù)生成一個cookie,系統(tǒng)經(jīng)處理把這
個cookie發(fā)送到客戶端并保存在c:\Documents and Settings\用戶名\Cookies
目錄下。cookie是HTTP標(biāo)頭的一部分,因此setcookie函數(shù)必須在任何內(nèi)容送到瀏覽器之前調(diào)
用。這種限制與header()函數(shù)一樣。當(dāng)客戶再次訪問該網(wǎng)站時,瀏覽器會
自動把c:\Documents and Settings\用戶名\Cookies目錄下與該站點對應(yīng)的cookie發(fā)送到服
務(wù)器,服務(wù)器則把從客戶端傳來的cookie將自動地轉(zhuǎn)化成一個PHP變量。
通過$_COOKIE['xxx']讀取客戶端發(fā)來的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:用來設(shè)置cookie的名稱、不能省略。
value:用來設(shè)置cookie的值、可以為"",表示刪除cookie.
expire:用來設(shè)置cooke的生存時間、例如:time()+60*60*24.以秒為單位。
path:用來設(shè)置cookie在客戶端的存放路徑、xp路徑在C:\Documents and Settings\Administrator\Cookies.不同操作系統(tǒng)不一樣,
這個文件是隱藏的。
domain:用于設(shè)置能夠訪問cookie的域名。
secure:用于設(shè)置是否由安全套接層協(xié)議層SSL,HTTPS傳送cookie,默認(rèn)是false.
例如:
one.php
<?php
setcookie("username", "blog.51ou.com", time()+60*60*24); //保存時間為一天
setcookie("userage", 22, time()+60*60);//保存時間為一個小時
?>
這樣當(dāng)我們在瀏覽器打開one.php、然后在C:\Documents and Settings\Administrator\Cookies 會找到相應(yīng)的cookie信息、這里cookie值
都是經(jīng)過編碼的、如果想看到cookie的值可以使用setrawcookie
例如:
two.php
<?php
setcookie("name", "51ou.com", time()+60*60*24); //保存時間為一天
setcookie("age", 22, time()+60*60);//保存時間為一個小時
?>
這樣當(dāng)我們在瀏覽器打開two.php、然后在C:\Documents and Settings\Administrator\Cookies 會找到相應(yīng)的明碼cookie信息。
此外、cookie必須放在任何輸出動作的前面、不然會出錯、如果非要這樣做可以用這樣一對函數(shù):ob_start(); ob_end_flush();
例如:
three.php
<?php
ob_start();//如果前面沒有這個函數(shù)在setcookie有echo就會出錯、
echo "blog.51ou.com";
setcookie("username", "ssw");
ob_end_flush();
?>
訪問Cookie
當(dāng)我們設(shè)置好cookie后我們可以用全局這量$_COOKIE['']來訪問cookie
例如:
four.php
<?php
setcookie("sitename", "blog.51ou.com");
echo $_COOKIE['sitename'];
?>
在瀏覽器打開four.php你就會看到blog.51ou.com.
OK到此Cookie到止結(jié)束、
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。