0
当用户在另一个窗口/选项卡上打开另一个页面时,会导致冲突。那么如何防止这些冲突呢?一种方法是为每个页面设置相同的会话。每次用户注销/登录会话都将被重新生成。更改每个页面请求的会话是否很重要?
<?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请求。但是当用户打开另一个选项卡时,新会话被设置,然后另一页返回'无效请求'错误。
你的意思改变会话ID?为什么你需要为每个页面加载重新生成一个新的?为什么它会在新选项卡上导致问题 - 所有网址都有令牌? – alex 2011-01-25 00:46:37
是的所有页面都有令牌,将用于ajax请求和表单提交 – kornesh 2011-01-25 00:56:33