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


Posted in PHP onFebruary 11, 2019

说来惭愧,前几天做项目的时候,出现个低级错误。在公司后台做表单提交,一是自己员工用,二是 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防止重复提交表单的全部内容,感谢大家对三水点靠木的支持。

PHP 相关文章推荐
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 PHP
处理单名多值表单的详解
Jun 08 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
php中字符串和正则表达式详解
Oct 23 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 PHP
stripos函数知识点实例分享
Feb 11 #PHP
PHP检查URL包含特定字符串实例方法
Feb 11 #PHP
PHP strripos函数用法总结
Feb 11 #PHP
PHP xpath()函数讲解
Feb 11 #PHP
Laravel框架实现超简单的分页效果示例
Feb 08 #PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 #PHP
Yii框架引入coreseek分页功能示例
Feb 08 #PHP
You might like
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php实现的农历算法实例
2015/08/11 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
JavaScript的Function详细
2006/11/14 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
javascript绘制简单钟表效果
2020/04/07 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
如何运行带参数的python脚本
2019/11/15 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
英国森林假期:Forest Holidays
2021/01/01 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
关于安全的演讲稿
2014/05/09 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
平遥古城导游词
2015/02/03 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
团支部书记竞选稿
2015/11/21 职场文书
六年级数学教学反思
2016/02/16 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python
Rust中的Struct使用示例详解
2022/08/14 Javascript