$_SERVER['HTTP_COOKIE'] ส่งคืน PHPSESSID สองตัว

ฉันได้รับ PHPSESSID สองรายการขณะพิมพ์ $_SERVER['HTTP_COOKIE'] จริงๆ แล้วฉันไม่รู้ว่ามันตั้งค่าสองครั้งได้อย่างไร มันแค่ในระบบท้องถิ่นของฉันเท่านั้น เมื่อฉันตรวจสอบคุกกี้ของ SERVER มันเหมือนกับ:

echo $_SERVER['HTTP_COOKIE'];

//result 

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

เมื่อฉันตรวจสอบคุกกี้ของฉันคนเดียวเช่น:

print_r($_COOKIE);    

//result 

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

person Karthik N    schedule 19.06.2015    source แหล่งที่มา


คำตอบ (1)


คุณสามารถมีคุกกี้หลายรายการที่มีชื่อเดียวกันได้ สิ่งนี้จะเกิดขึ้นเมื่อคุณตั้งค่าคุกกี้ด้วยแอตทริบิวต์ Path หรือ Domain ที่แตกต่างกัน สิ่งเหล่านี้ ทั้งหมด ส่งไปยังเซิร์ฟเวอร์

ป้อนคำอธิบายรูปภาพที่นี่

RFC 6265 เฉพาะเจาะจง

หากส่วนหัวของคุกกี้มีคุกกี้สองตัวที่มีชื่อเดียวกัน (เช่น ที่ถูกตั้งค่าด้วยแอตทริบิวต์เส้นทางหรือโดเมนที่แตกต่างกัน) เซิร์ฟเวอร์ไม่ควรยึดตามลำดับที่คุกกี้เหล่านี้ปรากฏในส่วนหัว

$_COOKIE ของคุณจะถูกเติมด้วยค่าใดค่าหนึ่งเหล่านี้

person Federkun    schedule 19.06.2015