为什么即使重定向后我也会“再次提交表单”?

时间:2012-08-03 13:14:55

标签: php codeigniter

我在这里有一个奇怪的问题 - 见下文。

第X页

  • 包含具有帖子
  • 方法的表单
  • 用户提交表单 - 有一些表单验证。
  • 如果一切都有效,我保存数据,在会话中设置flash数据消息(即查询成功/失败)并将用户重定向()到current_ur()
  • 现在,我可以看到flash消息,如果我按 F5 - 我想再次提交表单吗?

这不应该刷新页面吗?如何阻止它提出另一个提交请求? 如果我重定向到第Y页,并在那里按 F5 ,那么它不会要求我重新提交?我迷路了!

1 个答案:

答案 0 :(得分:0)

好的家伙

这不是CodeIgniter问题。这是Firefox的问题。我正在使用14.0.1Firefox

我在IE 7, 8, 9Safari 5, Chrome(最新)中尝试了相同的表单和流程 - 他们没有向我显示重新提交表单的确认对话框{ {1}}。


<强>更新

在firefox中我收到此消息 -

  

要显示此页面,Firefox必须发送将重复的信息   执行的任何操作(例如搜索或订单确认)   早。

我只是设置了另一个脚本(没有CI)并在Firefox中进行了测试。我试图创建类似的过程(即发布并重定向到同一页面)......我根本没有得到这个消息。刷新工作正常。 所以我现在重新接受CI?

更新2

好的,我想我现在已经破解了它 -

我正在使用CI的重定向功能 - 见下文 - 第二个参数将默认值设置为“auto”,当它为F5时,它会将标头发送为auto,这会使Firefox抛出上述消息。如上所述,我在其他浏览器中没有得到相同的行为。我希望它有所帮助。

header('Refresh:0;url='.$uri);