Home > Article > Backend Development > WeChat development PHP form WeChat automatic submission twice problem solution
Foreword:
Recently I was doing WeChat development. When I accessed the PHP page in WeChat, there was a form on the page. The test found that occasionally the form was automatically submitted twice, causing process errors.
Cause of the problem
The reason has not been found yet, but it is suspected to be related to the mechanism of WeChat itself.
Solution
Use session to calculate a random number and post it every time the form is submitted. When the page processes form submission, it first determines whether the session exists. If it does not exist, save it. If it exists, compare it with the random number posted. If they are equal, it means repeated submission.
Code example:
Form part
<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>
Processing form submission
if(isset($_POST['confirm'])) { //解决重复调用两次的问题 if ($_POST['code'] == $_SESSION['code']) { exit; } else { $_SESSION['code'] = $_POST['code']; } //continue.... }
Thank you for reading, I hope it can help everyone, thank you for your support of this site !
For more articles related to the solution to the problem of automatically submitting twice the PHP form in WeChat developed by WeChat, please pay attention to the PHP Chinese website!