首页 > PHP > 简单处理表单重复提交问题

简单处理表单重复提交问题

之前写过一篇防止表单重复提交的博文,主要是介绍PRG设计模式的原理,相对比对理论化的一篇,今天给个简单有效的PHP实现.

方案的主要原理是,当用户在后台提交POST请求成功后,采用heaer在服务器端进行跳转(302重定向),这样在用户提交成功后刷新页面不会出现重复提交POST请求的问题.

需要注意的是,在服务器端通过302跳转只能解决提交成功响应后刷新页面重复提交问题,并不能解决POST交响应中服务器还未返回响应时刷新页面造成的重复提交.

PHP实现代码如下:

header(‘Location: 替换成提交完成后页面地址‘ );

服务器响应POST请求跳转HTTP请求状态

提交服务端暂未响应前刷新页面会造成重复提交

引用资料:

  1.  http://me.doucl.com/archives/other/post-redirect-get-prg-pattern.html
  2. http://en.wikipedia.org/wiki/Post/Redirect/Get
分类: PHP 标签: ,
  1. 2013年7月15日18:05 | #1

    每次提交之前不是都要去数据库验证,是否有重复信息吗?

    • 直来直往
      2013年7月27日11:38 | #2

      数据验证数据重复性和重复提交动作是两个概念,数据重复不一定是因为多次点击提交按钮或POST提交时刷新页面造成的。
      这里提到的重复提交只是简单处理POST提交时刷新页面造成的重复提交,如果要严格保证数据记录唯一性,是有在服务端验证数据的必要的。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

=5加5(必填)请输入两数相加的结果。