php 防止表单重复提交两种实现方法


Posted in PHP onNovember 03, 2016

php 防止表单重复提交

由于网络原因,经常出来点了提交按钮,网页没有反应,而进行再次点击。这样就导致后台收到两次提交,从而进行两次处理,本文章向大家介绍php 防止表单重复提交的几种方法

1、前端解决

方法一:

可以通过前端来解决。当用户点了提交按钮之后,先使用js进行有效性判断,没问题后,将提交按钮”禁用“掉。然后再提交!

方法二:

使用ajax提交表单。点了提交按钮后,禁用提将按钮,或者设置一个状态值,将其设为1,表示正在提交。再提交时判断如果正在提交,则不作处理。等ajax返回后,再恢复状态。

2、后端解决

有时候前端无法完全解决问题,比如我用了jquery.validateEngine,没有办法设置状态。所以考虑后端解决。

if(session("act_last_time") != ''){
 if(floor( (time()-(int)session("act_last_time")) % 86400 / 60) <1 ){
  $this->error("对不起,一分钟之内不能频繁提交!", U('Wap/MyAct/list'), 5);
 }
}else{
 $t = (int)time();
 echo $t;
 $_SESSION("act_last_time", $t);
}

后端解决不怎么友好,但绝对有效。即对提交频率进行控制。我这里设置的是1分钟。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
使用字符串函数输出整数化的PHP版本号
Oct 09 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
php实现购物车功能(下)
Jan 05 PHP
必须收藏的php实用代码片段
Feb 02 PHP
round robin权重轮循算法php实现代码
May 28 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
PHP HTTP 认证实例详解
Nov 03 #PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 #PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 #PHP
php 使用redis锁限制并发访问类示例
Nov 02 #PHP
Android AsyncTack 异步任务实例详解
Nov 02 #PHP
php array_pop 删除数组最后一个元素实例
Nov 02 #PHP
PHP设置images目录不充许http访问的方法
Nov 01 #PHP
You might like
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
pytorch forward两个参数实例
2020/01/17 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
MADE法国:提供原创设计师家具
2018/09/18 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
什么是封装
2013/03/26 面试题
我爱读书演讲稿
2014/05/07 职场文书
2015新学期开学寄语
2015/02/26 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
Nginx报404错误的详细解决方法
2022/07/23 Servers