首页 / 网页编程 / PHP / PHP关于cookie和session的分析
PHP关于cookie和session的分析2010-12-261.PHP的COOKIEcookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。1.1 设置cookie:可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客户端直接发送http头来设置.1.1.1 使用setcookie()函数设置cookie:bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )name: cookie变量名value: cookie变量的值expire: 有效期结束的时间,path: 有效目录,domain: 有效域名,顶级域唯一secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以.例子:<?php
$value = "something from somewhere";setcookie("TestCookie", $value); /* 简单cookie设置 */
setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
?>设置多个cookie变量: setcookie("var[a]","value");用数组来表示变量,但他的下标不用引号.这样就可以用$_COOKIE[‘var’][‘a’]来读取该COOKIE变量.1.1.2.使用header()设置cookie;header("Set-Cookie: name=$value[;path=$path[;domain=xxx.com[;...]]");后面的参数和上面列出setcookie函数的参数一样.比如:$value = "something from somewhere";
header("Set-Cookie:name=$value");1.2 Cookie的读取:直接用php内置超级全局变量 $_COOKIE就可以读取浏览器端的cookie.上面例子中设置了cookie"TestCookie",现在我们来读取:print $_COOKIE["TestCookie"];COOKIE是不是被输出了?!1.3 删除cookie只需把有效时间设为小于当前时间, 和把值设置为空.例如:setcookie("name","",time()-1);用header()类似.