$_SERVER['HTTP_COOKIE'] return的两个PHPSESSID

$_SERVER['HTTP_COOKIE'] return's two PHPSESSID

我在打印 $_SERVER['HTTP_COOKIE'] 时收到两个 PHPSESSID。实际上我不知道它是如何设置两次的,它只在我的本地系统中。 当我检查服务器 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',
      )

您可以有多个名称相同的 cookie。当您使用不同的 Path 或 Domain 属性设置 cookie 时会发生这种情况。它们全部发送到服务器。

RFC 6265具体

if the Cookie header contains two cookies with the same name (e.g., that were set with different Path or Domain attributes), servers SHOULD NOT rely upon the order in which these cookies appear in the header.

您的 $_COOKIE 将填充这些值之一。