2011-04-11 77 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