为一个域上的站点设置不同的会话变量

时间:2017-02-21 09:24:19

标签: php session session-variables

我在一个域(虚拟主机)中有多个网站: website.com/site1website.com/site2等 在每个网站上都有一个身份验证,可以将username保存在Session中。

问题是: 如果我在site1,并且,让我们说,Alex从我的浏览器加入site2,则site1会认为我是Alex。如果我做某事,亚历克斯将写在数据库中。

一个解决方案是检查每个操作的Sessionusername是否相同。

是否有使用相同$_SESSION['name']变量为site1site2设置不同$_SESSION['name']的解决方案?

2 个答案:

答案 0 :(得分:0)

我有一个懒惰的解决方案,如果它可以为你工作。

website.com/site1

当您启动会话时,这意味着您执行某些功能,然后将其存储在数据库中,如

//SQL things and finally
$_SESSION['username'] = $username;

你可以这样做

 $_SESSION['site1-username'] = $username;

同样在其他网站

$_SESSION['site2-username'] = $username;

答案 1 :(得分:0)

找到了更好的解决方案:

每隔5秒,JS就会向服务器发送用户名。服务器检查它是否等于Session。如果没有,则要求用户进行身份验证。