×

php header 之 Set-Cookie

admin admin 发表于2017-07-09 18:31:28 浏览1630 评论0

抢沙发发表评论

php设置cookie可以使用setcookie函数或header函数。使用header方式时候需要注意字符串的顺序,如果顺序不对,可能会出现意想不到的问题。正确的顺序为

name=value; [expires=date; [path=path]; [domain=domainname]; [secure]]

例如:在netingcn.com下设置一个名为cookiename,值为cookieValue,过期时间为一年的cookie

header("Set-Cookie: cookiename=cookieValue; expires=" . gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT", time() + (86400 * 365)) .  '; path=/; domain=netingcn.com');

如果把domain、path放到expires前面,在firefox通过httpfox查看时,发现过期时间是“End Of Session”,但退出浏览器后重新打开,发现该cookie还是存在的,chrome显示的也是类似。虽说浏览器最终还是设置了一个一年过期的cookie,不过domain信息为当前页面的完整域,不是设置的顶级域。所以一定要注意顺序。

另外,如果用header的方式设置多个cookie,需要设置header的第二个参数为FALSE,下面是header函数的声明:

void header ( string string [, bool replace [, int http_response_code]] )

第二个参数replace 指明是替换掉前一条类似的标头还是增加一条相同类型的标头。默认为替换,但如果将其设为 FALSE 则可以强制发送多个同类标头。

浏览器请求的效果如下:

image.png


cookie保存:

image.png

分享到:

群贤毕至

访客