Zusammenfassung der Methoden, um zu verhindern, dass Benutzer Formulare wiederholt übermitteln

Zusammenfassung der Methoden, um zu verhindern, dass Benutzer Formulare wiederholt übermitteln

Das doppelte Absenden von Formularen ist das häufigste und problematischste Problem bei Mehrbenutzer-Webanwendungen. Es gibt viele Anwendungsszenarien, bei denen es zu Problemen mit doppelten Übermittlungen kommen kann, beispielsweise:

Klicken Sie zweimal auf die Schaltfläche „Senden“. Klicken Sie auf die Schaltfläche Aktualisieren. Die Verwendung der Zurück-Schaltfläche des Browsers zum Wiederholen vorheriger Aktionen führt zu doppelten Formularübermittlungen. Nutzen Sie Ihren Browserverlauf, um das Formular wiederholt abzusenden. Der Browser wiederholt die HTTP-Anfrage.

Mehrere Möglichkeiten, doppelte Formulareinreichungen zu verhindern

1. Deaktivieren Sie die Schaltfläche „Senden“ . Verwenden Sie Javascript, um die Schaltfläche „Senden“ nach dem Absenden des Formulars zu deaktivieren. Dieser Ansatz verhindert, dass ungeduldige Benutzer mehrmals auf die Schaltfläche klicken. Es gibt jedoch ein Problem. Wenn der Client Javascript deaktiviert, ist diese Methode ungültig.

Ich habe in meinem vorherigen Artikel erwähnt, dass die Verwendung einiger JQuery-Plug-Ins gute Effekte haben kann.

2.Post-/Umleitungs-/Get-Modus . Das Durchführen einer Seitenumleitung nach der Übermittlung wird als Post-Redirect-Get (PRG)-Muster bezeichnet. Kurz gesagt: Wenn der Benutzer das Formular absendet, führen Sie eine clientseitige Weiterleitung auf die Informationsseite zur erfolgreichen Übermittlung durch.

Dadurch kann das wiederholte Senden vermieden werden, das durch das Drücken von F5 durch den Benutzer verursacht wird, und es wird keine Warnung über das wiederholte Senden des Browserformulars ausgegeben. Dadurch kann auch das gleiche Problem behoben werden, das durch das Drücken der Vorwärts- und Zurück-Tasten des Browsers verursacht wird.

3. Speichern Sie ein spezielles Flag in der Sitzung . Beim Aufruf der Formularseite wird eine spezielle Zeichenfolge generiert, in der Sitzung gespeichert und in einem ausgeblendeten Feld des Formulars abgelegt. Überprüfen Sie beim Akzeptieren und Verarbeiten von Formulardaten, ob die Identifikationszeichenfolge vorhanden ist, löschen Sie sie sofort aus der Sitzung und verarbeiten Sie die Daten dann normal.

Wenn festgestellt wird, dass in der Formularübermittlung keine gültige Flag-Zeichenfolge vorhanden ist, bedeutet dies, dass das Formular übermittelt wurde und die Übermittlung ignoriert wird.

Dadurch erhält Ihre Webanwendung einen erweiterten XSRF-Schutz.

4. Fügen Sie der Datenbank Einschränkungen hinzu. Fügen Sie eine eindeutige Einschränkung hinzu oder erstellen Sie einen eindeutigen Index in der Datenbank, um doppelte Daten zu vermeiden. Nur so können Sie eine doppelte Datenübermittlung verhindern.

Das Obige ist eine Einführung in diese vier Methoden. Wenn Sie bessere Lösungen haben, lassen Sie es mich bitte wissen. Dieser Artikel wird weiterhin aktualisiert.

<<:  Lassen Sie IE6, IE7, IE8 CSS3-abgerundete Ecken und Schattenstile unterstützen

>>:  Detaillierte Erläuterung der Lösung zur festen Positionierung von CSS-Unterelementen relativ zum übergeordneten Element

Artikel empfehlen

Docker-Bereitstellungs- und Installationsschritte für Jenkins

Zuerst benötigen wir einen Server mit installiert...

Tutorial zur manuellen Installation und Konfiguration von mysql8.0.11 winx64

Lassen Sie mich zunächst über meinen Alltag sprec...

JavaScript zum Erzielen eines Tab-Umschalteffekts

In diesem Artikel wird der spezifische JavaScript...

Verwenden von jQuery zum Implementieren des Karusselleffekts

In diesem Artikel finden Sie den spezifischen Cod...

Schritte zur vollständigen Deinstallation des Docker-Images

1. docker ps -a zeigt den laufenden Image-Prozess...

HTML-Tutorial, leicht zu erlernende HTML-Sprache (2)

*******************Einführung in die HTML-Sprache ...

Detaillierte Erklärung des TS-Objekt-Spread-Operators und des Rest-Operators

Inhaltsverzeichnis Überblick Objektrestattribut E...

Docker-Bereitstellung von Kafka und Spring Kafka-Implementierung

In diesem Artikel wird hauptsächlich die Bereitst...

So implementieren Sie die Fernzugriffskontrolle in Centos 7.4

1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...

Detaillierte Erklärung des Linux-Netstat-Befehls

Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...

So konfigurieren Sie MGR Single Master und mehrere Slaves in MySQL 8.0.15

1. Einleitung MySQL Group Replication (kurz MGR) ...

So verwenden Sie React-Slots

Inhaltsverzeichnis brauchen Kernidee Zwei Möglich...