当用户在另一个窗口/选项卡上打开另一个页面时,会导致冲突。那么如何防止这些冲突呢?一种方法是为每个页面设置相同的会话。每次用户注销/登录会话时都会重新生成。
<?php
//every page sets its own session if its not ajax so that it dont expire
if(is_ajax()){
$_SESSION['token'] = md5(rand());
}
echo '<div id="token">'.$_SESSION['token'].'</div>';
?>
令牌将从div.token传递,以通过jquery执行ajax请求。但是当用户打开另一个选项卡时,会设置新会话,然后另一个页面返回“无效请求”错误。
答案 0 :(得分:1)
打开多个页面或标签页不应干扰会话。如果确实如此,你可能会在会话中投入太多。
你在会话中存储了什么?听起来你可能在会话中存储了属于URL的内容。
编辑:看到您的编辑后,您可能想查看此问题的最佳答案: