Sven Rautenberg: $_POST Variablen nach Refresh noch vorhanden

Beitrag lesen

Moin!

habe ein Formular gestrickt welches an sich selbst eingegebene Daten posted. Wenn ich nach der Eingabe der Daten diese per Submit absende, werden diese auch erfolgreich in die Datenbank eingetragen. Allerdings kann ich mit jedem Refresh der Seite den gleichen Datensatz erneut eintragen. Dies wollte ich mit unset($_POST) abfangen - leider erfolglos.

Der Reload einer POST-Ergebnisseite (mit den Formulardaten im HTTP-Request-Body) ist identisch zum Reload einer GET-Ergebnisseite (mit den Formulardaten im HTTP-Request-Header und sichtbar in der URL-Zeile).

Daraus folgt: Wenn du verhindern willst, dass eine POST-Ergebnisseite neu geladen werden kann, und dabei die gleichen Daten immer wieder schickt, mußt du entweder verhindern, dass der Browser auf dieser Seite stehenbleibt (mit Redirect zu einer ungefährlichen Seite), oder programmtechnisch abfangen, dass die Daten mehrfach verarbeitet werden.

Der Redirect ist dabei wesentlich simpler zu programmieren.

- Sven Rautenberg

--
"Love your nation - respect the others."