作者:手机用户2502919063 | 来源:互联网 | 2014-06-18 09:01
在php 中COOKIE是我们常用到的,但是可能很多朋友都不知道COOKIE是怎么工作的,下面小编来给大家整理一下关于php COOKIE工作原理与一些对于COOKIE读写操作实例。
COOKIE和会话状态
做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址!
什么是 COOKIE?
COOKIE 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 COOKIE 包含的信息。 COOKIE 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 COOKIE。如果该 COOKIE 存在,浏览器就将它与页面请求一起发送到您的站点。
COOKIE 有哪些用途?
最根本的用途是:COOKIE 能够帮助 Web 站点保存有关访问者的信息。更概括地说,COOKIE 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您.
•当客户访问某个基于PHP技术的网站时,在PHP中可以使用setCOOKIE()函数生成一个COOKIE,系统经处理把这个COOKIE发送到客户端并保存在C:Documents andSettings用户名COOKIEs目录下。
•COOKIE是HTTP标头的一部分,因此setCOOKIE()函数必须在HTML本身的任何内容送到浏览器之前调用。这种限制与header()函数一样(如需了解head()函数,请自行查阅)。
•当客户再次访问该网站时,浏览器会自动把C:DocumentsandSettings用户名COOKIEs目录下与该站点对应的COOKIE发送到服务器,服务器则把从客户端传来的COOKIE将自动地转化成一个PHP变量。在PHP5中,客户端发来的COOKIE将被转换成全局变量。你可以通过$_COOKIE[‘xxx’]读取。
定义一个COOKIE
•设置COOKIE:
•语法:boolsetCOOKIE(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);
本COOKIE函数可以有6个属性,常用的有3个参数。
1.实例,代码如下:
$value="the best way is by yourself";
setCOOKIE("COOKIEname",$value,time()+60*60*24*7);
接收和处理COOKIE
PHP对COOKIE有很好的支持,和form表单一样,接收的时候PHP会自动从web服务器接收HTTP头并且它。接收的时候和表单接收一样,用$_COOKIE[“COOKIEname”]或者$HTTP_COOKIE_VARS[“COOKIEname”](不提倡使用)
注意:如果网站有几个不同的文件目录,使用不带路径的COOKIE,那么只能在设置COOKIE的文件所在路径下访问到此COOKIE。如果指定路径,则按照设置时的路径作为访问COOKIE的指定路径。
创建COOKIE数组:
其一,代码如下:
setCOOKIE("COOKIEArray[0]","Value1");
setCOOKIE("COOKIEArray[1]","Value2");
其二,代码如下:
setCOOKIE("COOKIEArray['one']","Value1");
setCOOKIE("COOKIEArray['two']","Value2");
setCOOKIE()中使用数组,代码如下:
- setCOOKIE("COOKIE[three]","COOKIEthree");
- setCOOKIE("COOKIE[two]","COOKIEtwo");
- setCOOKIE("COOKIE[one]","COOKIEone");
-
- if(isset($_COOKIE['COOKIE'])){
- foreach($_COOKIE['COOKIE']as$name=>$value){
- echo"$name:$value
n";
- }
- }
- ?>
删除COOKIE
1.要删除一个已经存在的COOKIE,有两个办法:
1、调用只带有name参数的setCOOKIE,那么名为这个name的COOKIE将被从客户机上删掉;
setCOOKIE(“MyCOOKIE”);//删除MyCOOKIE
2、期时间就行,那么这个COOKIE在这个页面的浏览完之后就被删除了(其实是失效了)。
例如,代码如下:
setCOOKIE(“MyCOOKIE”,”Value”,time()-1);//删除MyCOOKIE。
要注意:当一个COOKIE被删除时,它的值在当前页仍然有效。如果要把COOKIE设置成在浏览器关闭后就失效。那么可以直接把expiretime设为0,或者不设置此值。
例如:setCOOKIE(“name”,”value”,0)。
COOKIE注意事项
•1、setCOOKIE()之前不能有任何html输出,就是空格,空白行都不行,必须在html文件的内容输出前设置
•2、setCOOKIE()后,你在当前页调用echo$_COOKIE[“name”]不会有输出。必须刷新或到下一个页面才可以看到COOKIE值。
•3、不用浏览器对COOKIE处理不同。客户端可以禁用COOKIE,浏览器也会限制COOKIE的数量。一个浏览器能创建的COOKIE数量最多为300个,并且每个不能超过4KB,每个WEB站点能设置的COOKIE总数不能超过20个。
•4、COOKIE是保存在客户端的,用户禁用了COOKIE,你的COOKIE自然也就没作用啦!因此,避免过度依赖COOKIE,要先想好如果COOKIE被禁用时的解决方案,以备万一.