2011-04-11 76 views
0

如果PHP腳本使用PHPSESSID獲取兩個cookie,它如何處理會話變量? 它是用第一個PHPSESSID或最後一個的變量填充$ _SESSION嗎?或者只是合併它們?php腳本如何處理兩個PHPSESSID?

+1

嘗試'<?php echo SID; ?>'並將回顯的字符串與cookie值進行比較。 – 2011-04-11 05:43:17

回答

1

$ _COOKIE是一個關聯數組,會話cookie值將被解析爲那個,所以最後一個勝利。但是,由於瀏覽器在從服務器發送「Set-Cookie」頭時更新cookie,因此唯一的原因可能是客戶端篡改。

+0

「Cookie」標頭由瀏覽器發送。服務器發送「Set-Cookie」標題。 – binaryLV 2011-04-11 06:25:30

+0

@ binaryLV's:你確實很對。根據評論更新。 – Sajid 2011-04-11 06:41:43

0

只能有一個活動會話。這是在$_COOKIE$_GET$_POST中找到的第一個會話ID,它的名稱與當前的session.name值相符。

+0

最後寫的不是這個嗎?我的意思是,如果瀏覽器收到一個與現有名稱相同的cookie,它會覆蓋它,對吧?它永遠不會*發送* 2到服務器,因爲我不認爲它有「兩個相同名稱的cookie」的概念,是嗎? – AgentConundrum 2011-04-11 05:44:24

+1

@AgentConundrum:可能有多個不同範圍的Cookie。我目前不確定瀏覽器如何處理這種情況。我想他們會更喜歡最具體的一個。 – Gumbo 2011-04-11 05:53:46

+0

如果其中一個用於.domain.com,另一個用於域forum.domain.com - 因此打開forum.domain.com瀏覽器發送它們兩個 – HongKilDong 2011-04-11 05:54:45