Cookie保存在客戶端瀏覽器中,cookie是Http頭的一部分,經過瀏覽器請求頁面時,它會被經過Http頭的形式發送過去。被請求的頁面,能夠經過PHP來獲取cookie的值。
Cookie和瀏覽器和域名相關,不一樣瀏覽器各自存儲,cookie只會在當前域名發送,其餘域名不會帶上cookie去請求。php
*參數說明:
name:cookie名(必填)
value:cookie值(可選)
expire:過時時間,時間戳格式(可選)。不設置則默認爲會話級cookie,在瀏覽器關閉後cookie失效。
path:服務器端有效路徑(可選)。默認爲當前設置cookie時頁面的路徑,'/'表示整個域名有效,'/A'表示A分類目錄下的頁面有效。只有設置的路徑包含的頁面才能夠拿到cookie值
domain:該cookie有效的域名(可選),只有指定的域名才能夠拿到cookie,默認全部域名均可以拿到。 如,「www.php.com」,也但是「.php.com」。html
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去請求)
$cookieValue ='';
if (isset($_COOKIE['validCode'])) //首先判斷是否已設置了該cookie
{
$cookieValue = $_COOKIE['validCode'];
}
能夠經過設置cookie過時時間爲之前的時間點來銷燬:
setcookie("user", "", time()-3600);
一、setcookie()以前不能有任何html輸出,就是空格,空白行都不行。
二、setcookie()後,你在當前頁調用echo $_COOKIE["name"]不會有輸出。必須刷新或到下一個頁面在過時以前才能夠看到Cookie值。
三、因爲cookie信息存儲於用戶的計算機中,那麼就有可能僞造或修改Cookie從而形成Cookie 欺騙,通常能夠對cookie的值進行加密來預防欺騙。讀取Cookie的時候,對Cookie解密便可。
四、Cookie是保存在客戶端的,用戶禁用了Cookie,你的Cookie天然也就沒做用啦!