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

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...

Verwendung von Vue3-Seiten, Menüs und Routen

Inhaltsverzeichnis 1. Klicken Sie auf das Menü, u...

So wählen Sie das Format bei der Verwendung von Binlog in MySQL

Inhaltsverzeichnis 1. Drei Binlog-Modi 1.Anweisun...

So implementieren Sie den Vue-Timer

In diesem Artikelbeispiel wird der spezifische Co...

Einige Tipps zur richtigen Verwendung des HTML-Titelattributs

Wenn Sie Inhalte vor Benutzern von Telefonen, Tabl...

Zusammenfassung der Verwendung von Linux-SFTP-Befehlen

sftp ist die Abkürzung für Secure File Transfer P...

jQuery implementiert alle Warenkorbfunktionen

Inhaltsverzeichnis 1. Alles auswählen 2. Erhöhen ...

js+Html zur Realisierung einer Tabellenbearbeitungsoperation

In diesem Artikel wird der spezifische Code von j...

Tutorial zur Installation von VMware Workstation 14 Pro unter Ubuntu 16.04

In diesem Artikel wird die spezifische Methode zu...

Teilen Sie den Installationsdatensatz für MySql8.0.19

Im vorherigen Artikel wurde der Installationsproz...

MySQL View-Prinzipanalyse

Inhaltsverzeichnis Aktualisierbare Ansichten Leis...

Tutorial zur HTML-Tabellenauszeichnung (48): CSS-modifizierte Tabelle

<br />Sehen wir uns nun an, wie Sie die CSS-...