Einführung in die Verhinderung der wiederholten Übermittlung von Formularen in PHP (Codebeispiel)

不言
Freigeben: 2023-04-05 06:36:01
nach vorne
2511 Leute haben es durchsucht

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);
Nach dem Login kopieren

Sitzung

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']);
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage