使用F5发布帖子后停止重新提交页面

时间:2009-09-13 18:00:37

标签: php html redirect

用post方法提交表格后f5将重新提交。 没有重定向页面,最好避免这种情况。我不喜欢这样打扰用户。 Stackoverflow对f5免疫,但在提问后我没有看到任何重定向。

3 个答案:

答案 0 :(得分:7)

获取后发布

  • 表单执行POST请求
  • 代码处理表
  • 使用位置标头重定向代码

结果:刷新生成的页面只会再次显示它,因为它是使用GET完成的。

答案 1 :(得分:6)

StackOverflow非常重视AJAX,这就是为什么你会看到你看到的行为。

如果您不想获得所有AJAXy,则需要重定向。这种重定向应该对用户透明:

if (! empty($_POST)){
   // Do something with the contents of $_POST
   header('Location: success.php');
}

现在,如果您的验证失败,您可能会重新加载包含一些错误消息的表单,并且锤击F5将重新发布数据。但是如果操作成功,用户将被重定向到您的成功页面,他们可以整天锤击f5而无需重新发布数据,并可能创建重复操作。

答案 2 :(得分:3)

实现此效果的标准方法是使用HTTP重定向,这对用户来说并不明显(因此我假设您引用元刷新延迟重定向)。

请参阅Post Redirect Get pattern