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开发中的错误收集,不定期更新。
Feb 03 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
Win7下手动安装apache2.2、php5.4笔记
Apr 03 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
php操作MongoDB类实例
Jun 17 PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
laravel入门知识点整理
Sep 15 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
ftp类(example.php)
2006/10/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
PHP二维数组去重算法
2016/12/17 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python的pstuil模块使用方法总结
2019/07/26 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
爱护环境建议书
2015/09/14 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书