PHP中Cookie的使用

什麼是Cookie?

Cookie保存在客戶端瀏覽器中,cookie是Http頭的一部分,經過瀏覽器請求頁面時,它會被經過Http頭的形式發送過去。被請求的頁面,能夠經過PHP來獲取cookie的值。
Cookie和瀏覽器和域名相關,不一樣瀏覽器各自存儲,cookie只會在當前域名發送,其餘域名不會帶上cookie去請求。php

設置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」。html

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

cookie名稱:validCode瀏覽器

cookie值:value服務器

過時時間:12小時後過時cookie

能夠拿到cookie的頁面:全部頁面dom

能夠拿到cookie的域名:www.test.com加密

圖文解析:

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

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

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

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

獲取Cookie:

$cookieValue ='';

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

銷燬Cookie:

能夠經過設置cookie過時時間爲之前的時間點來銷燬:
setcookie("user", "", time()-3600);

Cookie注意事項:

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

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

三、因爲cookie信息存儲於用戶的計算機中,那麼就有可能僞造或修改Cookie從而形成Cookie 欺騙,通常能夠對cookie的值進行加密來預防欺騙。讀取Cookie的時候,對Cookie解密便可。

四、Cookie是保存在客戶端的,用戶禁用了Cookie,你的Cookie天然也就沒做用啦!

相關文章
相關標籤/搜索