PHP中Cookie的使用


1.什么是Cookie?

Cookie保存在客戶端瀏覽器中,cookie是Http頭的一部分,通過瀏覽器請求頁面時,它會被通過Http頭的形式發送過去。被請求的頁面,可以通過PHP來獲取cookie的值。

Cookie和瀏覽器和域名相關,不同瀏覽器各自存儲,cookie只會在當前域名發送,其他域名不會帶上cookie去請求。

 

2.設置Cookie:

語法:
bool setcookie( string name,[string value],[int expire],[string path],[string domain]);

參數說明:
name:cookie名(必填)
value:cookie值(可選)
expire:過期時間,時間戳格式(可選)。不設置則默認為會話級cookie,在瀏覽器關閉后cookie失效。
path:服務器端有效路徑(可選)。默認為當前設置cookie時頁面的路徑,'/'表示整個域名有效,'/A'表示A分類目錄下的頁面有效。只有設置的路徑包含的頁面才可以拿到cookie值
domain:該cookie有效的域名(可選),只有指定的域名才可以拿到cookie,默認所有域名都可以拿到。 如,“www.php.com”,也可是“.php.com”。

 

實例:

setcookie('validCode','value',time()+3600*12,'/','www.test.com');

cookie名稱:validCode

cookie值:value

過期時間:12小時后過期

可以拿到cookie的頁面:所有頁面

可以拿到cookie的域名:www.test.com

 

圖文解析:

$cookieValue = 'value';
$flag = setcookie('validCode', $cookieValue,time()+60,'/');

首次設置,響應頭Set-Cookie已經有名為validCode的信息了,表示該cookie已存放在硬盤中該瀏覽器的cookie目錄里了

請求頭里面此時還沒攜帶改Cookie,下次請求就會帶上了。

設置完成后再請求頁面就會攜帶cookie了:(如果限制了路徑或域名,則只會在指定的頁面才會攜帶cookie去請求)

 

3.獲取Cookie:

$cookieValue ='';

if (isset($_COOKIE['validCode']))   //首先判斷是否已設置了該cookie
{
    $cookieValue = $_COOKIE['validCode'];
}

 

4.銷毀Cookie:

可以通過設置cookie過期時間為以前的時間點來銷毀:
setcookie("user", "", time()-3600);

 

5.Cookie注意事項:

1、setcookie()之前不能有任何html輸出,就是空格,空白行都不行。

2、setcookie()后,你在當前頁調用echo $_COOKIE["name"]不會有輸出。必須刷新或到下一個頁面在過期之前才可以看到Cookie值。

3、由於cookie信息存儲於用戶的計算機中,那么就有可能偽造或修改Cookie從而造成Cookie 欺騙,一般可以對cookie的值進行加密來預防欺騙。讀取Cookie的時候,對Cookie解密即可。

4、Cookie是保存在客戶端的,用戶禁用了Cookie,你的Cookie自然也就沒作用啦!

 

站外擴展:

PHP Cookies

php中的cookie用法

 php中Cookie詳解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM