$ _SESSION问题

时间:2011-05-30 09:19:06

标签: php iis session

我有一个网络服务器(IIS),在这里我有两个文件夹:website1website2,有两个不同的同一个webapp副本。一旦我登录其中一个 - 比如说mylocalip/website1我就会非常标准地开始一个会话:

$_SESSION["user_id"] = x;

这在我的网站上运行良好。 但是,如果我转到mylocalip/website2,我发现自己仍然登录。很奇怪,如果我去mypublicip/website2我发现自己没有登录。

我的问题是:为什么我会观察这种行为?

谢谢和最诚挚的问候。

3 个答案:

答案 0 :(得分:2)

PHP会通过coockie检索会话。 coockie链接到该主机的主机或子文件夹。

因此,在更改同一主机上的文件夹时,您保留此coockie,并且您仍然登录。但是当您从公共IP地址连接自己时,您没有相同的主机,因此具有不同的会话

答案 1 :(得分:2)

会话对象已分配给域名。您在这里使用原始IP,因此它成为域名。两个文件夹都在同一个域名下面,因此它们共享Session对象。

但是,当您转到公共IP地址时,其他IP的会话cookie无效,因此您需要重新登录。

答案 2 :(得分:1)

尝试使用session_set_cookie()并将path参数设置为/website1

相关问题