微信开发之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中for循环语句的几种变型
Mar 16 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
php中JSON的使用与转换
Jan 14 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
php模板之Phpbean的目录结构
2008/01/10 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
JavaScript 数组循环引起的思考
2010/01/01 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
js闭包的9个使用场景
2020/12/29 Javascript
初步探究Python程序的执行原理
2015/04/11 Python
python采集百度百科的方法
2015/06/05 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python 调用c语言函数的方法
2017/09/29 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
医院党员公开承诺书
2014/08/30 职场文书
房屋过户委托书范本
2014/10/07 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书