微信开发之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 在线打包_支持子目录
Jun 28 PHP
PHP 采集心得技巧
May 15 PHP
php flv视频时间获取函数
Jun 29 PHP
destoon各类调用汇总
Jun 20 PHP
php使用PDO方法详解
Dec 27 PHP
详解php的socket通信
Aug 11 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
PHP命令行与定时任务
Apr 01 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
详解vue高级特性
2020/06/09 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
python使用mysql的两种使用方式
2018/03/07 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
python脚本和网页有何区别
2020/07/02 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
视图的作用
2014/12/19 面试题
公务员总结性个人自我评价
2013/12/05 职场文书
寄语十八大感言
2014/02/07 职场文书
会计学习心得体会
2014/09/09 职场文书
运动会广播稿200字
2014/10/18 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
机械生产实习心得体会
2016/01/22 职场文书