PHP防止表单重复提交的几种常用简单方法

1. 使用JS让按钮在点击一次后禁用(disable),但是,客户端禁止javascript脚本就失效了!
2. 提交成功后执行页面重定向(redirect),但是,使用浏览器的后退前进按钮,同样的问题!
3. 表单隐藏域中存放session(表单被请求时生成的唯一标记)[令牌验证法]:
 1)在服务端生成一个session或者一个随机数 ,渲染页面时,给form里的一个隐藏域token赋值。
 2)当form提交时,token一同提交到服务端,进行比较。

//表单页隐藏域存放此//服务端处理,如果是存的session来判断的
//处理
if($_POST['token'] != '' && $_POST['token'] == $_SESSION['token'])
{
  unset($_SESSION['token']);
  //其他代码
}

4. 数据库唯一索引约束:
 1) 即在每次服务端进行数据处理之前,进行对数据库某一唯一索引进行比对

5. 对于数据的处理:
 1)限制同意user_id、ip、phone等,5分钟或10分钟之内,不能重复提交
 2)限制所有user_id ,每天只能提交10次。

原创文章,转载请注明: 转载自HSBLOG

本文链接地址: PHP防止表单重复提交的几种常用简单方法