解决php表单重复提交实现方法


Posted in PHP onSeptember 29, 2015

重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦。

<?php
/*
 * php中如何防止表单的重复提交
 */
session_start();
if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫
  //...........//写入数据库操作
} else {//已经有第一次写入后的操作,也就不再写入数据库
  echo '请不要再次刷新和后退'; //写一些已经写入的提示或其它东西
}
?>

具体原理
session范围变量token来防止。
1. 开启session:
session_start();
2. 如果有表单提交

if (isset($token))

token以hidden的形式包含在form当中。

<input type="hidden" name="token" value="<?php echo $token; ?>" />

 

3. 如果是重复提交表单

if ($_SESSION["token"] != $token) { 
  // 不让重复提交,在此处理 
  // header("location:".$_SERVER['PHP_SELF']); 
} else { 
  // 正常的表单提交,在此处理 
  // echo "已提交";  
}

4. 设置token值
$token = mt_rand(0,1000000);
2$_SESSION['token'] = $token;

以上就是关于如何解决php表单重复提交实现方法,希望对大家的学习有所帮助。

PHP 相关文章推荐
用PHP实现登陆验证码(类似条行码状)
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
php防盗链的常用方法小结
Jul 02 PHP
PHP APC的安装与使用详解
Jun 13 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP命名空间用法实例分析
Sep 04 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 #PHP
php猜单词游戏
Sep 29 #PHP
PHP代码优化技巧小结
Sep 29 #PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 #PHP
PHP类的封装与继承详解
Sep 29 #PHP
PHP比较运算符的详细介绍
Sep 29 #PHP
php提高网站效率的技巧
Sep 29 #PHP
You might like
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP序列化操作方法分析
2016/09/28 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
python实现线程池的方法
2015/06/30 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Python3并发写文件与Python对比
2019/11/20 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
女大学生自我鉴定
2013/12/09 职场文书
写自荐信要注意什么
2013/12/26 职场文书
HR求职自荐信范文
2014/06/21 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
监察建议书
2015/02/04 职场文书
增值税发票丢失证明
2015/06/19 职场文书