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