防止表单重复提交

一、原因

  1. 点击提交按钮两次
  2. 点击刷新按钮
  3. 使用浏览器后退按钮重复之前的操作,导致重复提交表单
  4. 使用浏览器历史记录重复提交表单
  5. 浏览器重复的HTTP请求

二、防止

  1. js禁掉提交按钮
  2. 使用PRG模式
  3. 服务端生成随机值,客户端拿到后放在隐藏域,提交后服务端销毁随机值
  4. 使用header函数跳转页面
  5. 表单过期的处理
    • 使用header头设置缓存控制头cache-control
    • 使用session_cache_limiter方法
  6. 判断表单动作的技巧
  7. 在数据库里添加唯一约束
  8. 使用cookie处理