PHP Cookie管理

来源:互联网 发布:jquery.cookie.min.js 编辑:程序博客网 时间:2024/06/05 20:16

1.什么是cookie
cookie是一种在客户浏览器端存储数据并以此文件来跟踪和识别用户的机制.
简单的说cookie是web服务器暂时存储在用户硬盘上的一个文件,并随后被web客户端读取.
当用户再次访问文本网站时 ,网站通过读取cookie文件记录访客的特定信息。
如上次访问的位置 话费的时间 。用户名和密码等 。从而迅速做出相应。 如在页面中不需要输入用户的ID和密码即可直接登录网站。
cookie文本文件的命令格式如下
用户名@网站地址[数字].txt
在cookie文件夹下,每个cookie文件都是一个简单而又普通的文本文件 ,而不是程序,
cookie文件中的内容大多都经过了加密处理, 因此, 表面上看起来只是一些字母和数字的组合, 而只有服务器的CGI处理程序才知道它们真正的含义。
2.cookie的功能
Web服务器可以通过cookie包含的信息来筛选或维护这些信息, 以判断HTTP在传输中的状态 。
cookie常用于以下3个方面

  1. (录访客的某些信息 如可以利用cookie记录用户访问网页的次数, 或者记录访客曾输入过的信息, 另外,
    某些网站可以使用cookie自动记录访客上次登录的用户名。
  2. 在页面之间传递变量 浏览器并不会保存当前页面上的任何变量信息
    ,当页面被关闭时页面上的所有变量信息都随之消失,如果用户声明一个变量id=8,要把这个变量传到另一个页面,可以把变量id以cookie的形式保存下来,然后在下一页通过读取该cookie来获取该变量的值。
  3. 将所查看的Internet页存储在cookie临时文件夹中,可以提高以后浏览单速度。
<?php//1.创建cookie//在创建cookie之前必须了解的是,cookie是HTTP头标的组成部分,而头标必须在页面其他内容发送之前发送,因此它必须最先输出。若在setcookie()函数前输出一个HTML标记,echo语句,甚至一个空行都会导致程序出错//bool setcookie(string name[string value[,int expire[,string path[,string domiaan[,int secure]]]]])//name cookie的变量名 可以通过$_COOKIE["cookiename"]来调用变量名为cookiename的Cookie//value cookie变量的值 可以通过$_COOKIE["values"]来调用变量名为values的Cookie//expire cookie的失效时间 expire是标准的UNIX时间戳 可以通过time()和mktime()获取 如果不设置失效时间 cookie将永远有效 除非手动删除//path cookie在服务器端的有效路径 如果设置为“/” 则它在整个domian内有效,如果设置为“/11”,那么它在domian下的11目录及子目录内有效//domian cookie的有效域名 要使cookie在mrbccd.com域名下的所有子域都有效,应该设置为mrbccd.com//secure 指明cookie是否仅通过安全的HTTPS 值为0或1 如果值为1,则cookie只能在HTTPS连接上有效,如果值为默认0,那么cookie在HTTP和HTTPS连接上均有效$value=1;setcookie("TMCookie",'www.mrbccd.com');setcookie("TMCookie",'www.mrbccd.com',time()+60);setcookie("TMCookie",$value,time()+60,"/tm",".mrbccd.com",1);//2.读取cookie//在PHP中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端的Cookie值if(!isset ($_COOKIE["visittime"])){    setcookie("visittime",date("Y-m-d H:i:s"));    echo "欢迎您第一次访问网站";}else{    setcookie("visittime",date("Y-m-d H:i:s"),time()+60);    echo "您上次放问网站的时间为".$_COOKIE["visittime"]."<br/>";}echo "您本次放问网站的时间为",date("Y-m-d H:i:s");echo '<br/>';//如果未设置cookie的失效时间 则在关闭浏览器时自动删除cookie数据//3.删除cookie//使用setcookie()删除cookie//将setcookie()的第二个参数设置为空值 将第三个参数失效时间设置为小于系统的当前时间即可setcookie("name","",time()-1)//吧失效时间设置为0 也可以直接删除cookie//手动删除cookie//4.cookie的生命周期//如果cookie不设置失效时间,就表示它的生命周期为浏览器会话的时间,只要关闭浏览器 ,cookie//就会自动消失。这种cookie称为会话cookie,一般不保存在硬盘上,而是保存在内存中。//如果设置了失效时间,那么浏览器会把cookie保存到硬盘中,再次打开浏览器时依然有效,直到它的有效期超时//虽然cookie可以长期保存在客户端的浏览其中,但也不是一成不变的。因为浏览器嘴都允许存储的cookie数量是有限的,而且没个cookie文件支持最大容量为4KB,每个域名最多支持的cookie数量也是有限的。如果达到限制时,//浏览器就会自动地随机删除cookie?>
原创粉丝点击