这里有新鲜出炉的精品教程,程序狗速度看过来!
微信(英文名:wechat)是腾讯公司于 2011 年 1 月 21 日推出的一个为智能终端提供即时通讯服务的免费应用程序,微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件 "摇一摇"、"漂流瓶"、"朋友圈"、"公众平台"、"语音记事本" 等服务插件。
这篇文章主要介绍了微信开发之 php 表单微信中自动提交两次问题解决办法的相关资料, 这里提供了解决办法及实例代码,需要的朋友可以参考下
前言:
最近做微信开发,在微信中访问 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....
- }
来源: http://www.phperz.com/article/17/0801/340725.html