$ _SERVER [' HTTP_COOKIE']返回两个PHPSESSID

时间:2015-06-19 09:40:24

标签: php session session-cookies

我在打印PHPSESSID时收到两个$_SERVER['HTTP_COOKIE']。实际上我不知道它是如何设置两次的,它只在我的本地系统中。 当我检查它的SERVER cookie时:

echo $_SERVER['HTTP_COOKIE'];

//result 

'fe_toolbar=false; 
fe_toolbar=false; 
PHPSESSID=4tvbovcjk0msf9dvibeb31c2b7; 
langId=1; 
backendLangId=2; 
PHPSESSID=46aagg1hg7as2uh9bihjlpp8h7'

当我单独检查我的cookie时:

print_r($_COOKIE);    

//result 

array (
       'fe_toolbar' => 'false',
       'PHPSESSID' => '4tvbovcjk0msf9dvibeb31c2b7',
      )

1 个答案:

答案 0 :(得分:3)

您可以拥有多个同名的Cookie。当您使用不同的路径或域属性设置cookie时会发生这种情况。他们全部发送到服务器。

enter image description here

RFC 6265具体

  

如果Cookie标头包含两个具有相同名称的Cookie(例如,   设置了不同的路径或域属性),服务器不应该依赖这些cookie在标题中出现的顺序。

您的$_COOKIE将填充其中一个值。