在我正在开发的一个健身网站上,我使用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)来测试另一个会话,而不会丢失第一个会话。