解决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数组操作汇总 php数组的使用技巧
Jul 17 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
php内嵌函数用法实例
Mar 20 PHP
PHP实现动态web服务器方法
Jul 29 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
Django 中 cookie的使用
Aug 17 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP实现的折半查找算法示例
Dec 19 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轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python 重命名轴索引的方法
2018/11/10 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python实现多张图片拼接成大图
2019/01/15 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
STP的判定过程
2012/10/01 面试题
申请任职学生会干部自荐书范文
2014/02/13 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
python opencv通过4坐标剪裁图片
2021/06/05 Python
html实现弹窗的实例
2021/06/09 HTML / CSS
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python