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

Lösung für das Timeout-Problem der SNMP4J-Serververbindung

Als Verwaltungszentrale und Server dient dabei un...

MySQL-Import- und Export-Sicherungsdetails

Inhaltsverzeichnis 1. Detaillierte Erklärung der ...

Eine schnelle Lösung für das Problem der PC- und Mobilanpassung

Beim Erstellen einer Webseite müssen wir normaler...

Frameset über Iframe in Body einfügen

Da Frameset und Body auf derselben Ebene liegen, k...

Vue implementiert Bildverifizierungscode beim Anmelden

In diesem Artikelbeispiel wird der spezifische Co...

Bereinigungsmethode für das Docker-Verzeichnis /var/lib/docker/aufs/mnt

Der Dienst des Unternehmens verwendet Docker und ...

Detaillierte Erklärung der Javascript-String-Methoden

Inhaltsverzeichnis Zeichenfolgenlänge: Länge char...

Analysieren Sie CSS, um die Farbfunktion des Bildthemas zu extrahieren (Tipps)

Hintergrund Alles begann, als ein Klassenkamerad ...

Detaillierte Erklärung zur Verbindung von Java mit Mysql Version 8.0.18

In Bezug auf die Verbindungsmethode zwischen Java...

Einführung in die CSS-Stilklassifizierung (Grundkenntnisse)

Klassifizierung von CSS-Stilen 1. Interner Stil -...

So implementieren Sie eine automatische Remote-Sicherung von MongoDB unter Linux

Vorwort Nachdem ich den vorherigen Artikel über d...