[PHP]防止表单重复提交的几种方法
---------------------------------------------------------------------------------------------------
1. 使用JS让按钮在点击一次后禁用(disable)。=> 防止多次点击发生,实现方式较简单。
缺点:若客户端禁止JavaScript脚本,则失效。
2. 在提交成功后执行页面重定向(redirect)。=> 转到提交成功信息页面。
特点:避免F5重复提交,消除浏览器前进和后退按导致的同样问题。
3. 表单隐藏域中存放session(表单被请求时生成的标记)。=> 接收表单数据后,检查此标志值是否存在,先进行删除,然后处理数据; 若不存在,说明已提交过,忽略本次提交。
/*
|---------------------------------
|原理 & 代码示例
|@黑眼诗人 <www.farwish.com>
|---------------------------------
*/
//服务端生成随机数存入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. 数据库唯一索引约束(最有效的防止重复数据的方法)。
Link: http://www.cnblogs.com/farwish/p/3911588.html
[PHP]防止表单重复提交的几种方法的更多相关文章
- java防止表单重复提交的几种方法
转载大神 1. 使用session同步和token机制来防止并发重复提交 https://blog.csdn.net/hejingyuan6/article/details/50487777 2. S ...
- js防止表单重复提交的两种方法
第一种:用flag标识,下面的代码设置checkSubmitFlg标志: 复制代码代码如下: <script language=""javascript"" ...
- java web学习总结(十三) -------------------使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- token防止表单重复提交
出现表单重复提交的三种情况: 一.服务器响应缓慢,用户多次点击提交按钮. 二.提交成功后刷新页面. 三.提交成功后返回表单页面再次点击提交. package com.jalja.token; impo ...
- JavaWeb防止表单重复提交(转载)
转载自:http://blog.csdn.net/ye1992/article/details/42873219 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用 ...
- JavaWeb---总结(十三)使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- [Java拾遗五]使用Session防止表单重复提交
申明:此文章属于转载, 转自博客: http://www.cnblogs.com/xdp-gacl/p/3859416.html在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没 ...
- java web 学习十三(使用session防止表单重复提交)
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- JavaWeb学习总结(十三)——使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
随机推荐
- orcale 函数wm_concat不存咋lob值使用zh_concat 替换
create or replace TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(32767), STATIC ...
- tf.nn.nce_loss
def nce_loss(weights,biases,inputs,labels,num_sampled,num_classes,num_true=1,sampled_values=None,rem ...
- Kaptcha
Kaptcha:google自动生成验证码组件 kaptcha的使用比较方便,只需添加jar包依赖之后简单地配置就可以使用了 kaptcha所有配置都可以通过web.xml来完成,如果你的项目中使用了 ...
- layui之初始化加分页重复请求问题解决
layui框架中的page困扰我很久,一个页面初始化后并且分页,导致初始化渲染请求一次,分页再请求了一次,一个接口就重复请求了2次,通过不停的分析和测试,最终解决了这个问题. 基于JQ的ajax二次封 ...
- tomcat7.0安装笔记
1. 解压,新增系统环境变量CATALINA_HOME,值为tomcat所在目录,如E: tomcat7.0 PS:安装JAVA时没有配置系统变量JAVA_HOME,导致报错无法启动tomcat,新建 ...
- java根据GPS(经纬度)获取地理位置
package cn.antiy.weiqing.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONAr ...
- MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在
MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在 版权声明:本文为博主原创文章,欢迎大家转载,注明出处即可.有问题可留言,会尽快回复,欢迎探讨 ...
- Eclipse svn 项目 星号
上图: 明明没有文件修改过就是无脑显示有提交的文件,有强迫症受不了. 而且每次提交你都点开看有没有漏掉啥文件.很麻烦.也很难受 .很容易漏提交 把本地文件跟SVN同步对比一下. 果然有文件. 添加规则 ...
- 【SQL函数】我知道你想group_concat和count一起用,比如不同组合的人数?
0.背景 前几天复习了一下MySQL函数,知道一个group_concat函数很好用,但一直没实际用过.今天碰到一个问题,把我问懵逼了. 1.实例 假设有一张用户购买产品的增量表order_list, ...
- CDH 安装遇到的问题
CDH 遇到的问题 l JAVA_HOME问题 这里, 很明显可以看到, JAVA_HOME 并没有设置成功.using as ... 感觉完全就是没有设置JAVA_HOME 这个环境变量.可是呢 ...