Vorwort:
Vor kurzem mache ich WeChat-Entwicklung. Wenn ich auf die PHP-Seite in WeChat zugreife, gibt es ein Formular auf der Seite. Der Test ergab, dass das Formular gelegentlich automatisch zweimal übermittelt wurde, was zu Prozessfehlern führte.
Die Ursache des Problems
Die Ursache wurde noch nicht gefunden, es wird jedoch vermutet, dass sie mit dem Mechanismus von WeChat selbst zusammenhängt.
Lösung
Verwenden Sie die Sitzung, um eine Zufallszahl zu berechnen und diese jedes Mal zu veröffentlichen, wenn das Formular gesendet wird. Wenn die Seite die Formularübermittlung verarbeitet, wird zunächst festgestellt, ob die Sitzung vorhanden ist. Wenn sie vorhanden ist, wird sie mit der veröffentlichten Zufallszahl verglichen.
Codebeispiel:
Formularteil
<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>
Verarbeitung der Formularübermittlung
if(isset($_POST['confirm'])) { //解决重复调用两次的问题 if ($_POST['code'] == $_SESSION['code']) { exit; } else { $_SESSION['code'] = $_POST['code']; } //continue.... }
Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, Vielen Dank für Ihre Bewertung. Unterstützung von dieser Seite!
Weitere verwandte Artikel zur Lösung des Problems der automatischen Übermittlung des doppelten PHP-Formulars in WeChat, das von WeChat entwickelt wurde, finden Sie auf der chinesischen PHP-Website!