>  기사  >  백엔드 개발  >  WeChat에서 개발한 WeChat에서 PHP 양식을 두 번 자동 제출하는 문제에 대한 솔루션

WeChat에서 개발한 WeChat에서 PHP 양식을 두 번 자동 제출하는 문제에 대한 솔루션

高洛峰
高洛峰원래의
2017-01-11 16:38:361273검색

머리말:

최근 위챗 개발을 하고 있는데 위챗에서 PHP 페이지에 접속하면 페이지에 폼이 있어요. 테스트 결과 때때로 양식이 자동으로 두 번 제출되어 프로세스 오류가 발생하는 것으로 나타났습니다.

문제 원인

아직 원인은 발견되지 않았지만, 위챗 자체의 메커니즘과 관련이 있는 것으로 의심됩니다.

해결책

세션을 사용하여 난수를 계산하고 양식이 제출될 때마다 게시합니다. 페이지에서는 양식 제출을 처리할 때 먼저 세션이 존재하는지 확인하고, 존재하지 않으면 게시된 임의의 숫자와 비교하여 동일한 경우 반복 제출을 의미합니다.

코드 예:

양식 부분

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

읽어 주셔서 감사합니다. 모두에게 도움이 되기를 바랍니다. 검토해 주셔서 감사합니다. 이 사이트에서 지원하세요!

WeChat에서 개발한 WeChat에서 PHP 양식을 두 번 자동 제출하는 문제에 대한 솔루션과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.