微信开发之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安装攻略:常见问题解答(三)
Oct 09 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
php设计模式之单例模式代码
Jun 11 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
php操作access数据库的方法详解
Feb 22 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
php字符串分割函数用法实例
2015/03/17 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
python解析json实例方法
2013/11/19 Python
python在linux中输出带颜色的文字的方法
2014/06/19 Python
简单上手Python中装饰器的使用
2015/07/12 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
Python函数调用追踪实现代码
2020/11/27 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
中层干部岗位职责
2013/12/18 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
《鱼游到了纸上》教学反思
2014/02/20 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android