Heim > Artikel > Backend-Entwicklung > Einführung in die Verhinderung der wiederholten Übermittlung von Formularen in PHP (Codebeispiel)
Dieser Artikel bietet Ihnen eine Einführung in die PHP-Methode zur Verhinderung der wiederholten Übermittlung von Formularen (Codebeispiele). Ich hoffe, dass er Ihnen als Referenz dienen wird.
Beschämt muss ich sagen, dass ich vor ein paar Tagen einen einfachen Fehler gemacht habe, als ich an einem Projekt gearbeitet habe. Bei der Übermittlung von Formularen im Backend des Unternehmens wurde eines von meinen eigenen Mitarbeitern verwendet und das andere von mir selbst in HTML geschrieben. Das Formular wurde wiederholt ohne Überprüfung übermittelt und das Ergebnis war ein Fehler. Schreiben Sie es auf und notieren Sie es, um sich daran zu erinnern und es niemals zu vernachlässigen.
Lösungen
Tatsächlich gibt es viele Methoden, ich gebe nur ein paar einfache Beispiele.
Framework
Viele Frameworks haben die Funktion, wiederholte Einreichungen zu verhindern. Jeder sollte davon wissen, daher werde ich hier nicht auf Details eingehen.
Frontend
Das Prinzip ist sehr einfach. Nachdem der Benutzer auf „Senden“ geklickt hat, verwenden Sie einfach JS, um die Schaltfläche „Senden“ auszublenden.
Das Backend
verwendet auch PHP zur Verifizierung, natürlich ist es nicht auf die folgenden Typen beschränkt
Cookie
Der Benutzer sendet das Formular an die Backend, im Cookie Machen Sie eine Markierung, und wiederholte Übermittlungen innerhalb der angegebenen Zeit sind ungültig. Diese Methode schlägt jedoch fehl, wenn der Benutzer Cookies deaktiviert.
<?php if (isset($_COOKIE['formFlag'])) { exit('error'); } // 处理数据 // 30秒内重复提交无效 setcookie('formFlag', time(), time() + 30);
Beim Anzeigen der Formularseite wird eine Zufallszahl generiert und in der Sitzung und dem ausgeblendeten Feld des Formulars gespeichert. Vergleichen Sie beim ersten Senden den Wert in der Sitzung und löschen Sie ihn erfolgreich.
<?php if (!isset($_SESSION['formFlag']) || $_POST['formFlag'] != $_SESSION['formFlag']) { exit('error'); } // 处理数据 unset($_SESSION['formFlag']);
Das obige ist der detaillierte Inhalt vonEinführung in die Verhinderung der wiederholten Übermittlung von Formularen in PHP (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!