欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php防止表单重复提交实例讲解

程序员文章站 2022-06-13 17:18:11
说来惭愧,前几天做项目的时候,出现个低级错误。在公司后台做表单提交,一是自己员工用,二是 html 自己来写的,没有验证表单重复提交,结果出错了。写出来记录下以便提醒自己,...

说来惭愧,前几天做项目的时候,出现个低级错误。在公司后台做表单提交,一是自己员工用,二是 html 自己来写的,没有验证表单重复提交,结果出错了。写出来记录下以便提醒自己,时刻不能疏忽。

解决方法

其实方法有很多种,只举例几个简单的来说说。

框架

很多框架都有防止重复提交的功能,大家应该都有了解,这里不再赘述。

前端

原理很简单,用户点击提交之后,使用 js 将提交按钮置灰即可。

后端

也就是使用 php 进行验证,当然不局限以下几种

cookie

用户提交表单到后端,在 cookie 中做标记,指定时间内重复提交无效。但是用户禁用 cookie 这个方法就失效了。

<?php
 
if (isset($_cookie['formflag'])) {
  exit('error');
}
 
// 处理数据
 
// 30秒内重复提交无效
setcookie('formflag', time(), time() + 30);

session

展示表单页面的时候,生成随机数,同时存储在 session 中以及表单隐藏域中。第一次提交的时候,对比成功删除 session 中的值。

<?php
 
if (!isset($_session['formflag']) || $_post['formflag'] != $_session['formflag']) {
  exit('error');
}
 
// 处理数据
 
unset($_session['formflag']);

上面就是本次介绍php防止重复提交表单的全部内容,感谢大家对的支持。