一、Cookie是什么?
cookie 常用于识别用户。cookie是保存在客户端浏览器中的,cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面是,这台计算机将会发送cookie。通过PHP ,您能够常见并取回cookie的值。
二、创建cookie
setcookie()函数用于设置cookie。
注释:setcookie() 函数必须位于<html>标签之前。
语法
setcookie(name,value,expire,path,domain);
参数说明
name:cookie名字
value:cookie值
expire:过期时间,时间戳格式。不设置则在浏览器关闭后cookie失效。
path:服务器有效路径。默认为当前设置cookie时页面的路径,'/'表示整个域名有效,'/A'表示A分类目录
下的页面有效、只有设置的路径包含的页面才可以拿到cookie值。
domain:该cookie有效的域名,只有指定的域名才可以拿到cookie,默认所有域名都可以拿到。
如,"www.baidu.com",也可是".baidu.com"。
实例1
在下面的例子中,我们将创建名为"user" 的cookie,并为他赋值"valuation"。我们也规定了此 cookie在一个小时后过期:
<?php
setcookie("user","valuation",time()+3600,'/','www.baidu.com');
?>
<html>
注释:在发送cookie时, cookie的值会自动进行URL编码,在取回时自动解码。(为防止URL编码,请使用setrawcooki() 取而代之。)
实例2
你还可以通过另一种方式设置cookie的过期时间。这也去比使用秒表示的方式简单。
<?php
$expire = time()+60*60*24*30;
setcookie("user","valuation",$expire);
?>
<html>
在上面的实例中,过期时间别设置为一个月(60秒*60分*24小时*30天)。
三、取回cookie的值
用PHP的 $_COOKIE 变量取回cookie的值。
在下面实例中,取回名为"user"的值,并把它显示在了页面上:
<?php
//输出 cookie值
echo $_COOKIE["user"];
//查看所有 cookie
print_r($_COOKIE);
?>
在下面的实例中,使用 isset() 函数来判断是否已设置了 cookie:
<?php
setcookie("user","valuation",time()+10);//过期时间为10秒
if(!isset($_COOKIE['user'])){ //cookie是否存在
echo "cookie也过期";//不存在
}else{
echo "cookie"; //存在
}
?>
五、删除Cookie
当删除cookie是,您应当使用过期时间变更为过去的时间点。
利用setcooki() 函数设置过期时间
删除的实例
<?php
//设置 cookie 过期时间为过去1小时
setcookie("user","",time()-3600);
?>
六、注意事项
1、浏览器限制Cookie的数量和大小(通常限制为50个,每个不超过4KB),每个web站点最多能设置20个cookie,一共能存300个cookie。
2、setcookie() 之前不能有任何html输出,保存阔空格、空行。
3、Cookie是保存在客户端的,如果禁用了cookie,cookie就会失效。
4、setcookie() 后,你在当前页调用echo $_COOKIE[“name”] 不会有输出。需要刷新或到下一个页面在过期之前才可以看到Cookie值。