Cookie管理
Cookie是一种在客户浏览器端存储数据并跟踪和识别用户的机制。Cookie是服务器留在用户计算机中的文本文件,并被WEB浏览器读取。当用户再次访问该WEB网站时,网站通过读取Cookie文件记录这位用户的信息,从而做出响应。
创建Cookie
Cookie是HTTP投标的组成部分,因此setCookie()函数必须在其他信息被输出到浏览器前调用。
在PHP中通过setCookie()函数创建Cookie。
语法格式:
setcookie(name,value,expire,path,demain,secure)
例子:Cookie的有效时间为60秒,在Cookie失效后,Cookie文件自动删除。如果时间被忽视,cookie 将会在会话结束后(浏览器关闭)失效。
<?php setcookie("abc",$value,time()+60,"/tm",".baidu.com"); ?>
注:在setCookie()函数前不能有任何HTML、空格、空行输出。
setcookie() 函数必须位于 <html> 标签之前。
在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
读取Cookie
在PHP中通过超级全局数组$_COOKIE[]读取浏览器端的Cookie值。
使用print_r()函数读取Cookie变量:
<?php echo $_COOKIE["abc"]; print_r($_COOKIE); ?>
注:SetCookie()后,你在当前页调用echo $_COOKIE["name"]不会有输出。必须刷新或到下一个页面在过期之前才可以看到Cookie值。
由于 cookie 信息存储于用户的计算机中,那么就有可能伪造或修改 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可。
Cookie是保存在客户端的,用户禁用了Cookie,你的Cookie自然也就没作用啦!
删除Cookie
Cookie被创建后,若没有设置失效时间,在关闭浏览器时Cookie文件也会被自动删除。若想要在关闭浏览器之前删除Cookie文件,则可以使用setcookie()函数删除。
使用setcookie()函数删除Cookie
用setcookie()函数删除Cookie,只要把setcookie()函数中的第二个参数设置为空值,将第三个参数Cookie的失效时间设置为小于系统的当前时间。
setcookie("abc","",time()-1);
time()函数把当前时间减少1秒得到过去的时间从而删除Cookie。
注:把失效时间设置为0,也可以直接删除Cookie。