de.comp.lang.php.* FAQ

29.16. Wie kann ich Reloads durch den User erkennen und verhindern?

Antwort von Kristian Köhntopp

Gewöhnlich macht man dies, indem man mit Session arbeitet und bei jedem Formular eine eindeutige ID ("Challenge") als Hidden-Variable in das Formular mit aufnimmt, die man sich außerdem in einer lokalen Sessionvariablen auf dem Server merkt.

Wenn das Formular abgesendet wird, vergleicht man die gelieferte Challenge mit der lokal gemerkten Challenge und akzeptiert das Formular nur dann, wenn beide übereinstimmen.

Wenn das Formular verarbeitet wird, löscht man die Challenge in der Sessionvariablen nach Abschluss der Verarbeitung. Wird das Formular ein weiteres Mal versendet, liefert es die alte Challenge aus der Hidden-Variable, deren Gegenstück in der Sessionvariablen aber bereits gelöscht wurde.

Man kann dies sehr schön mit einem generischen Formularvalidator automatisieren, dann hat man gar keine Arbeit mehr damit.

Valid HTML 4.01! Valid CSS!

29.16. Wie kann ich Reloads durch den User erkennen und verhindern?
http://www.php-faq.de/q/q-phplib-reloads.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team