溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php之cookie

發(fā)布時間:2020-07-11 06:55:20 來源:網(wǎng)絡(luò) 閱讀:313 作者:sswqzx 欄目:web開發(fā)

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é)束、


向AI問一下細(xì)節(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)容。

AI