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

时间:2015-10-29 15:25:06

标签: php session-variables

在我正在研究的健身网站上,我使用php \n在我的网页使用的各种php脚本中调用用户的用户名。

我在Chrome中打开了一个标签,该标签已登录到我正在处理的健身网站上的一个测试用户帐户。

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

然而,当我回到我的第一个标签并为我的第一个用户尝试该功能时,它更新了第二个用户的BMI,而不是第一个用户。这让我立即感到惊恐。我刷新了页面并意识到我实际上已经登录到第二个testuser帐户。

这必须是因为浏览器无法存储两组不同的会话变量。反正允许浏览器这样做吗?

2 个答案:

答案 0 :(得分:2)

会话变量为1。

$_SESSION['user'] = 1;

因此,在整个网站中,用户的价值为1。

现在,如果您更改了值,

$_SESSION['user'] = 2;

整个网站的会话中用户值为2。

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

同一个浏览器不能为同一个变量提供多个值,但可以在不同的浏览器中使用。

因此,在同一浏览器中无法使用同一会话变量的2组值。

<强>工作:

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

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

答案 1 :(得分:1)

浏览器一次只能使用一个会话。

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