微信开发之php表单微信中自动提交两次问题解决办法


Posted in PHP onJanuary 08, 2017

前言:

最近做微信开发,在微信中访问PHP页面,页面中有个表单。测试发现偶尔会出现表单被自动提交两次的情况,导致流程出错。

问题原因

暂时未找到原因,不过怀疑跟微信本身的机制有关。

解决方法

用session,每次提交表单时,计算一个随机数post出去。页面处理表单提交时,先判断是否有这个session,如果不存在就保存,存在就和post过来的随机数比较,如果相等表示重复提交。

代码示例:

表单部分

<div class="odform">
  <form action="#" method="post">

    <div class="input-group">
      <label for="amount_id">金额</label>
      <input type="text" name="amount" id="amount_id"
          placeholder="单位是元,精确到分,如:12.66" pattern="^([1-9]+(\.[0-9]{2})?|0\.[1-9][0-9]|0\.0[1-9])$">
      <input type="hidden" name="code" value="<?php $code = mt_rand(0, 100000); echo $code; ?>">
    </div>

    <div class="input-group">
      <span id="available">当前余额:<?php echo $amount_available; ?>元</span>
    </div>

    <button name="confirm">确认</button>
  </form>
</div>

处理表单提交

if(isset($_POST['confirm'])) {
  //解决重复调用两次的问题
  if ($_POST['code'] == $_SESSION['code'])
  {
    exit;
  }
  else
  {
    $_SESSION['code'] = $_POST['code'];
  }

  //continue....
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
PHP安全防范技巧分享
Nov 03 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
探讨如何把session存入数据库
Jun 07 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php实现的简单检验登陆类
Jun 18 PHP
详解YII关联查询
Jan 10 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
smarty模板数学运算示例
Dec 11 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 #PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 #PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 #PHP
Yii框架表单提交验证功能分析
Jan 07 #PHP
Yii框架弹出框功能示例
Jan 07 #PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 #PHP
PHP验证码类ValidateCode解析
Jan 07 #PHP
You might like
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
SQL Server笔试题
2012/01/10 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
优秀幼教自荐信
2014/02/03 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
高中综合实践活动总结
2014/07/07 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2014年党支部工作总结
2014/11/13 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python