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

EBA*_*BAG 2 html php redirect

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

Jan*_*nen 7

获得发布后

  • 表单执行POST请求
  • 代码流程形式
  • 代码重定向使用Location标头

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


tim*_*dev 6

StackOverflow相当AJAX,这就是你看到你看到的行为的原因.

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

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

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