浏览器是否可以同时存储两组不同的SESSION变量


Can a browser store two different sets of SESSION variables at the same time?

在我正在开发的一个健身网站上,我使用php $_SESSION在我的页面使用的各种php脚本中调用用户的用户名。

我在Chrome中打开了一个标签,它登录到了我正在开发的健身网站上的一个测试用户帐户

由于我想在另一个用户帐户上测试更新BMI功能,我打开了第二个选项卡并登录到另一个测试用户帐户。该功能运行成功,我的第二个用户BMI在数据库中得到了更新。

然而,当我回到我的第一个选项卡并为第一个用户尝试该功能时,它更新了第二个用户而不是第一个用户的BMI这立刻吓了我一跳。我刷新了页面,意识到我现在实际上已经登录到了第二个测试用户帐户。

这一定是因为浏览器无法存储两组不同的会话变量。是否允许浏览器这样做?

会话变量为1。

$_SESSION['user'] = 1;

所以在整个网站上,用户的价值是1。

现在,如果您更改值,

$_SESSION['user'] = 2;

整个网站在会话中将具有2的用户值。

您遇到这个问题是因为您没有刷新页面。

同一个浏览器不能为同一个变量有多个值,但在不同的浏览器中是可能的

所以在同一个浏览器中,同一会话变量不可能有两组值。

工作:

创建的每个会话都将有一个唯一的id,该唯一id存储在cookie中。Cookie依次存储在浏览器中。每次您向服务器请求会话变量时,它都会在cookie中查找会话id。

希望这对你有所帮助。任何疑问,你都可以问。

浏览器一次只能处理一个会话。

但是,您可以打开另一个浏览器或使用私人会话(Ctrl+Maj+p)来测试另一个会话,而不会丢失第一个会话。