微信开发之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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
如何用php获取程序执行的时间
Jun 09 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
常用PHP框架功能对照表
Oct 23 PHP
php文件上传类完整实例
May 14 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
禁止直接访问php文件代码分享
May 05 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
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP实现的策略模式示例
2019/03/20 PHP
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
iView框架问题整理小结
2018/10/16 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
师范应届生教师求职信
2013/11/05 职场文书
个性大学生自我评价
2013/12/04 职场文书
英文自荐信
2013/12/15 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
商务英语专业求职信范文
2014/01/28 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
房屋出租协议书
2014/04/10 职场文书
工作推荐信范文
2014/05/10 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL