Home  >  Article  >  Backend Development  >  WeChat development PHP form WeChat automatic submission twice problem solution

WeChat development PHP form WeChat automatic submission twice problem solution

高洛峰
高洛峰Original
2017-01-11 16:38:361259browse

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[&#39;confirm&#39;])) {
  //解决重复调用两次的问题
  if ($_POST[&#39;code&#39;] == $_SESSION[&#39;code&#39;])
  {
    exit;
  }
  else
  {
    $_SESSION[&#39;code&#39;] = $_POST[&#39;code&#39;];
  }
 
  //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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn