00 Stimmen

Wie verhindere ich Reloads beim Absenden eines Formulars?

Frage von Compi | 19.06.2012 um 23:52

Auf meiner Homepage gibt es ein Formular, dessen User-Eingaben abgespeichert werden sollen. Nun kommt es häufiger vor, dass ein Nutzer auf Aktualisieren klickt und damit alle Daten ein zweites Mal sendet, wodurch auch alle Eingaben doppelt bei mir ankommen.

Gibt es da irgendeine Möglichkeit, dieses doppelte Versenden der Daten oder den Reload der Seite zu verhindern?

AntwortenPositivNegativ
0Beste Antwort0 Stimmen

Das Aktualisieren einer Seite kannst du nicht verhindern, es ist also nicht möglich die Schaltfläche bzw. die Funktion im Browser zu deaktivieren.

Lösung mit MySQL

Was du allerdings machen kannst, ist die Daten nicht ein zweites mal zu speichern. Speicherst du in eine MySQL Tabelle, kannst du zunächst überprüfen ob der Datensatz schon vorhanden ist. Für den Fall, dass die Daten schon vorhanden ist, speicherst du nicht ab, ansonsten schon.

Lösung mit Sessions

Ein anderer Ansatz benutzt Sessions. Du startest eine Session und speicherst darin eine eindeutige ID, zum Beispiel ein Hash aus dem aktuellen Datum. Diese speicherst du als Hidden-Feld mit in dem Formular.

Wenn du die Daten aus dem Formular empfängst, prüfst du, ob die abgesendete ID deiner in der Session gespeicherten ID entspricht und generierst und speicherst danach eine neue ID in deiner Session.

Nun gibt es zwei Möglichkeiten: Entweder gleichen sich die aktuell in der Session abgespeicherte ID und die abgesendete ID. Dann weißt du, dass dies die erste Absendung des Formulars ist und du kannst die Daten verwenden. Falls sich die beiden Werte nicht entsprechen, weißt du, dass das Formular schon abgesendet/gespeichert wurde, denn nach dem Speichern wurde ja eine neue ID generiert. In diesem Fall kannst du dem Nutzer eine Seite mit dem Hinweis anzeigen, dass die Daten schon gesendet wurden. That's it.
20.06.2012 um 13:05

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.