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 相关文章推荐
在PWS上安装PHP4.0正式版
Oct 09 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
php递归实现无限分类的方法
Jul 28 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
php常用数组函数实例小结
Dec 29 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
详细解读php的命名空间(二)
Feb 21 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
图解javascript作用域链
2019/05/27 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
pyramid配置session的方法教程
2013/11/27 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python版学生管理系统
2018/01/10 Python
Python如何定义接口和抽象类
2020/07/28 Python
python实现简单的五子棋游戏
2020/09/01 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
副主任竞聘演讲稿
2014/08/18 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
初中成绩单评语
2014/12/29 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers