cookie是一种在浏览器远端存储数据并以此来跟踪和识别用户的机制。简单的说,cookie是web服务器暂时存储在用户硬盘上的一个文件夹,并随时被web浏览器读取。当用户再次访问web网站的时候,网站通过获取cookie记录用户的特定访问信息(如:上次访问的位置,花费的时间,用户名和密码) ,从而迅速做出相应,比如不需要用户输入密码就可以登录。
文本文件的格式如下:用户名@网站地址[数字].txtcookie 的功能主要有以下几个方面:
1,记录访客的某些信息。如可以利用cookie记录用户的访问页面的次数,或者是用户曾经输入的信息。另外,某些网站可以自动记录上次方可登录的用户名。
2,在页面间传递变量。浏览器并不会保存当前页面的任何变量信息,当页面被关闭时,页面上的所有变量信息将随之消失。如果声明一个变量id=8,要把这个变量传递到另一个页面,可以先把这个变量以cookie的形式保存下来,然后在下一个页面读取cookie中该变量的值。
3,将索要查看的Internet页存储在cookie临时文件夹中,可以提高以后浏览器的访问速度。
在php中通过setcookie()函数创建cookie。cookie是HTTP头标的组成部分而头标必须在页面其他内容之前发送,他必须最先输出。若在setcookie()函数之前输出一个HTML标记,或者echo语句,甚至一个空行都会导致程序出错。
语法格式如下:
bool setcookie(string name[,string value[,int explre[,string path[,string domain[,int secure]]]]])
setcookie()函数的参数说明如下:
使用setcookie()函数创建cookie 示例代码如下:
<?php
//setcookie("TMCookie",‘www.baidu.com‘);
//setcookie("TMCookie",‘www.baidu.com‘,time()+60); //cookie的有效期为60秒
//设置有效时间为60秒,有效目录为"/temp/",有效于域名为"www.baidu.com" 及其所有子域名
$value =88;
setcookie("TMCookie",$value,time()+3600,"/temp/",".baidu.com");
?>
cookie的读取
在php中,可以直接使用全局数组$_COOKIE[]来读取浏览器的cookie的值。
使用print_r()函数读取cookie的变量。示例代码如下:
<?php
if(!isset($_COOKIE["visittime"])){ //检测cookie文件是否存在,如果不存在
setcookie("visittime",date("Y-m-d H:i:s")); //设置一个cookie变量
echo "欢迎第一次访问网站!!!"; //输出字符串
}else{
setcookie("visittime",date("Y-m-d H:i:s"),time()+60);
echo "上次访问的时间为:".$_COOKIE["visittime"]."\n";
}
echo "本次访问的时间为:".date("Y-m-d H:i:s")."\n";
?>
运行结果如下:
删除cookie
删除cookie主要是使用setcookie函数来实现的,就是将cookie的失效时间减1秒,如题如下:
setcookie(“”visittime),time()-1);
cookie 的生命周期
如果cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭浏览器,那么cookie就会被删除。这种cookie被称为会话cookie,一般不保存在硬盘上,而是保存在内存中。
如果cookie设定失效时间,那么浏览器会把cookie保存到硬盘中,再次打开浏览器时cookie仍然后笑,直到cookie的有效期超时。
浏览器最多允许存储的cookie文件为300个,而且每个cookie文件最大支持容量为4k,每个域名最多支持20个cookie。如果达到限制时,浏览器就会随机的删除cookies。