我在一个子域(例如abc.example.com)中有一个网页名称page1.php。 page1.php的内容如下。
<?php
session_start();
$session_id = session_id();
echo "page4_session_id : ".$session_id."<br />";
?>
然后我在另一个子域(例如xyz.example.com)中将另一个网页名称作为page2.php。 page2.php的内容如下。
<?php
session_start();
$page5_session_id = session_id();
echo "page5_session_id : ".$page5_session_id."<br />";
?>
当我在Google Chrome或Fire Fox浏览器中运行这两个页面时,这些页面为 page4_session_id 和 page5_session_id 提供了不同的会话ID值。但是,当我在Internet Explorer 10中的两个不同选项卡中加载两个网页时,它为 page4_session_id 和 page5_session_id 提供了相同的值。
为什么IE会像那样?这是IE的一个功能吗?
答案 0 :(得分:0)
您是否尝试指定会话Cookie域有效性?
//for page1.php
session_set_cookie_params(time()+3600, "/", "abc.example.com");
//for page2.php
session_set_cookie_params(time()+3600, "/", "xyz.example.com");
来自php.net的函数session_set_cookie_params
Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.
This function updates the runtime ini values of the corresponding PHP ini configuration keys which can be retrieved with the ini_get().