解决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&amp;mysql(二)
Oct 09 PHP
PHP静态类
Nov 25 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 PHP
php缓冲输出实例分析
Jan 05 PHP
PHP中的替代语法介绍
Jan 09 PHP
php简单操作mysql数据库的类
Apr 16 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
PHP+JQUERY操作JSON实例
Mar 23 PHP
php 可变函数使用小结
Jun 12 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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+APACHE实现用户论证的方法
2006/10/09 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
php经典趣味算法实例代码
2020/01/21 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
JS分页效果示例
2013/10/11 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python字符串格式化
2015/06/15 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
MYSQL支持事务吗
2013/08/09 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
庆祝教师节标语
2014/10/09 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
教学副校长工作总结
2015/08/13 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
实现GO语言对数组切片去重
2022/04/20 Golang
Python中tqdm的使用和例子
2022/09/23 Python