微信开发之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学习资源和链接.
Dec 05 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
php禁止浏览器使用缓存页面的方法
Nov 07 PHP
php常用hash加密函数
Nov 22 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
PHP之预定义接口详解
Jul 29 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
PHP中递归的实现实例详解
Nov 14 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php5与php7的区别点总结
2019/10/11 PHP
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
庆国庆活动总结
2014/08/28 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
详细介绍python类及类的用法
2021/05/31 Python
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技