Heim  >  Artikel  >  Web-Frontend  >  So verhindern Sie, dass Benutzer wiederholt Formulare senden

So verhindern Sie, dass Benutzer wiederholt Formulare senden

高洛峰
高洛峰Original
2017-02-25 13:46:161163Durchsuche

Die doppelte Formularübermittlung ist das häufigste Problem bei Webanwendungen für mehrere Benutzer und verursacht viel Ärger. Es gibt viele Anwendungsszenarien, bei denen wiederholt Übermittlungsprobleme auftreten, z. B.:

Klicken Sie zweimal auf die Schaltfläche „Senden“. Klicken Sie auf die Schaltfläche „Aktualisieren“. Verwenden Sie die Zurück-Schaltfläche des Browsers, um die vorherige Aktion zu wiederholen, was zu wiederholten Formularübermittlungen führt. Senden Sie das Formular wiederholt mithilfe des Browserverlaufs. Doppelte HTTP-Anfragen vom Browser.

Mehrere Möglichkeiten, wiederholte Formularübermittlungen 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.

In meinem vorherigen Artikel habe ich gesagt, dass die Verwendung einiger JQuery-Plug-Ins gut funktioniert.

 2.Post-/Redirect-/Get-Modus. Bei der Seitenumleitung nach der Übermittlung handelt es sich um das sogenannte Post-Redirect-Get-Muster (PRG). Kurz gesagt: Wenn der Benutzer das Formular absendet, führen Sie eine clientseitige Umleitung durch und gelangen zur Seite mit den Informationen zum Übermittlungserfolg.

Dadurch können wiederholte Übermittlungen vermieden werden, die durch das Drücken von F5 durch den Benutzer verursacht werden, und es wird keine Warnung vor wiederholten Übermittlungen des Browserformulars angezeigt. Außerdem können dieselben Probleme beseitigt werden, die durch das Drücken der Vorwärts- und Rückwärtstasten des Browsers verursacht werden .

 3. Speichern Sie ein spezielles Flag in der Sitzung. Wenn die Formularseite angefordert wird, wird eine spezielle Zeichenfolge generiert, in der Sitzung gespeichert und im ausgeblendeten Feld des Formulars platziert. Ü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 bereits übermittelt wurde und diese Übermittlung ignoriert wird.

Dies verleiht Ihrer Webanwendung einen erweiterten XSRF-Schutz.

 4. Fügen Sie der Datenbank Einschränkungen hinzu. Fügen Sie eindeutige Einschränkungen hinzu oder erstellen Sie eindeutige Indizes in der Datenbank, um doppelte Daten zu verhindern. Dies ist die wirksamste Möglichkeit, eine wiederholte Übermittlung von Daten zu verhindern.

Das Obige ist eine Einführung in diese vier Methoden. Wenn Sie bessere Lösungen haben, teilen Sie uns dies bitte mit. Dieser Artikel wird weiterhin aktualisiert.

Weitere verwandte Artikel darüber, wie Sie verhindern können, dass Benutzer wiederholt Formulare einreichen, finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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
Vorheriger Artikel:Negativer Effekt der MargeNächster Artikel:Negativer Effekt der Marge