在symfony2中提交表单后,如何使页面过期?
有时我们的用户使用后退按钮并重新提交表单。如果表格已经提交,他们不应该重新提交,我想通知他们。
有时我在网页上看到会话已过期(例如我在网上银行时)。什么时候应该实施?在我的情况下,它是否适合?
答案 0 :(得分:1)
我用来实现这个ad-hoc的一种简单技术是一种自定义的csrf会话变量。
首先在表单提交后向会话添加一个变量,然后如果页面加载该变量,则表示他们已经点击了回来。
在提交后的页面控制器上添加:
$session->set('prevent_back_button', true);
在实际表单页面的控制器上:
if ($session->has('prevent_back_button'))
{
$session->remove('prevent_back_button');
$this->redirect('homepage');
}