点击微信返回时重复提交表单php,微信开发之php表单微信中自动提交两次问题解决办法...

在进行微信开发时遇到PHP表单偶尔被自动提交两次的问题,怀疑与微信机制有关。为防止重复提交,采取了使用session的策略。在表单提交时携带随机数,服务器端检查session,若不存在则保存,存在则与POST的随机数对比,相同则认为是重复提交并结束处理。此方法能有效避免表单重复提交导致的流程错误。
摘要由CSDN通过智能技术生成

前言:

最近做微信开发,在微信中访问PHP页面,页面中有个表单。测试发现偶尔会出现表单被自动提交两次的情况,导致流程出错。

问题原因

暂时未找到原因,不过怀疑跟微信本身的机制有关。

解决方法

用session,每次提交表单时,计算一个随机数post出去。页面处理表单提交时,先判断是否有这个session,如果不存在就保存,存在就和post过来的随机数比较,如果相等表示重复提交。

代码示例:

表单部分

金额

placeholder="单位是元,精确到分,如:12.66" pattern="^([1-9]+(\.[0-9]{2})?|0\.[1-9][0-9]|0\.0[1-9])$">

当前余额:<?php echo $amount_available; ?>元

确认

处理表单提交

if(isset($_POST['confirm'])) {

//解决重复调用两次的问题

if ($_POST['code'] == $_SESSION['code'])

{

exit;

}

else

{

$_SESSION['code'] = $_POST['code'];

}

//continue....

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值