相同的服务器,不同的域需要不同的会话

时间:2010-02-10 13:11:01

标签: php session dns subdomain

我正在为与单个数据库通信的多个域实施登录和注册 - 我们将其称为i.domain-a.comi.domain-b.com。这两个子域都在DNS中有A个记录指向单个服务器的记录 - 从而使i.domain-a.com/hello.phpi.domain-b.com/hello.php运行相同的事情。

因此,如果我在域A上创建会话,那么我可以转到域B并检索相同的会话信息。要为使用我编写的用于处理注册的相同PHP函数的两者实现完全独立的登录系统,我应该根据session_name()$_SERVER['HTTP_HOST']执行某些操作吗?我不确定我的情况与this guy有多相似,并希望这个问题不太相似。

3 个答案:

答案 0 :(得分:3)

为避免会话出现问题,您应该使用session_name('myapplication')[session_name({UNIQUE_APP_ID})]。

您提到的问题可能发生在更简单的情况下,其中有一个管理面板和网站用户的登录表单。

如果未使用session_name,则已登录的用户可以访问管理员。面板但这取决于身份验证。您已实施的计划和机制

的问候,

答案 1 :(得分:2)

会话/ Cookie是特定于域的,不依赖于DNS设置。如果您希望两个系统的会话在不同的域上分开,那么您已经完成了设置。

我相信session_name()实际上是其他人问题的最佳解决方案,同一领域的两个单独会话。

答案 2 :(得分:0)

没有。阻止不同用户获得相同会话的机制基于每个服务器工作,而不是基于每个主机名。