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天然也就没做用啦!