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


Posted in PHP onAugust 19, 2014

本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值。具体方法如下:

1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单。

缺点是若客户端禁止JavaScript脚本,则失效。

2. 在提交成功后执行页面重定向(redirect)。转到提交成功信息页面。

特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问题。

3. 表单隐藏域中存放session(表单被请求时生成的标记)。采用此方法在接收表单数据后,检查此标志值是否存在,先进行删除,然后处理数据; 若不存在,说明已提交过,忽略本次提交。

/*
//服务端生成随机数存入session, 分配至表单页
$data['sess_id'] = $_SESSION['sid'] = mt_rand(1000, 9999);
$this->load->view('form', $data);

//表单页隐藏域存放此session值
<input type="hidden" name="sid" value="<?=$sess_id; ?>">

//处理
if($_POST['sid'] != '' && $_POST['sid'] == $_SESSION['sid'])
{
 unset($_SESSION['sid']);

 echo '处理数据';
}
else
{
 echo '已提交过表单';
}

4. 数据库唯一索引约束(最有效的防止重复数据的方法)。

希望本文所述方法对大家的PHP项目开发能起到一定的帮助作用。

PHP 相关文章推荐
目录,文件操作详谈―PHP
Nov 25 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
php 全局变量范围分析
Aug 07 PHP
php5 图片验证码实现代码
Dec 11 PHP
基于Zend的Config机制的应用分析
May 02 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
php数据库备份还原类分享
Mar 20 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
Sep 27 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 PHP
PHP中单引号与双引号的区别分析
Aug 19 #PHP
php版本的cron定时任务执行器使用实例
Aug 19 #PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 #PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 #PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 #PHP
php解析json数据实例
Aug 19 #PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 #PHP
You might like
php模板函数 正则实现代码
2012/10/15 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Python中的并发编程实例
2014/07/07 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python多线程扫描端口代码示例
2018/02/09 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python和shell获取文本内容的方法
2018/06/05 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
通过实例学习Python Excel操作
2020/01/06 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
保密普查工作实施方案
2014/02/25 职场文书
工作睡觉检讨书
2014/02/25 职场文书
经典广告词大全
2014/03/14 职场文书
实习协议书范本
2014/09/25 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
Java界面编程实现界面跳转
2022/06/16 Java/Android