浏览器能否同时存储两组不同的 SESSION 变量?

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

在我工作的健身网站上,我使用 php $_SESSION 在我的页面使用的各种 php 脚本中回忆用户的用户名。

我在 Chrome 中打开了一个选项卡,该选项卡登录到我正在使用的健身网站上的一个测试用户帐户。

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

但是,当我返回第一个选项卡并为我的第一个用户尝试该功能时,它更新了第二个用户的 BMI,而不是第一个。 这让我感到震惊立即地。我刷新了页面,发现我实际上已经登录到第二个 testuser 帐户。

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

会话变量为 1。

$_SESSION['user'] = 1;

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

现在,如果您更改值,

$_SESSION['user'] = 2;

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

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

同一浏览器不能为同一变量设置多个值,但在不同浏览器中可以。

因此在同一个浏览器中不可能为同一个会话变量设置 2 组值。

工作:

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

希望对您有所帮助。有疑问可以问

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

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