我在php中有一个脚本在将结果插入到我的表之前执行某些操作,但是如果我在浏览器的多个选项卡中打开它,我试图阻止执行两次或更多相同的脚本,我正在努力做一个这样的技巧,因为我正在使用会话,我得到了一个特定的会话变量,当我运行脚本时会更新,但我的问题是......
如果我有这样的东西
session_start();
if (isset($_SESSION['lock'])) {
if ($_SESSION['lock'] === false) {
$_SESSION['lock'] = true;
}
}
该代码是使用ajax请求执行的文件,一旦使用新值更新变量,它将全局更新?,我的意思是我已经打开两个带有相同页面的选项卡(tab1和tab2)当我在tab2中执行相同操作时,在tab1中执行脚本,值$_SESSION['lock']
将是true
或false
?,我希望这个解释很好,谢谢。
注意:两个标签同时打开
答案 0 :(得分:2)
是的,更改$_SESSION
是该特定用户的全局更改。但请注意,$_SESSION
的更改不会被推送到多个“实时”窗口。只有在任何窗口/选项卡中的后续命中时,新值才有可能影响这些选项卡/窗口。
答案 1 :(得分:1)
是的,会话绑定到唯一的用户,因此它们会扩展到选项卡上。为什么不试试呢?