[TYPO3-german] Mehrmahliges absenden eines Formulars durch Aktualisieren verhindern

Martin Holtz typo3 at martinholtz.de
Sat Oct 20 14:26:48 CEST 2007


Hi,

das hat jetzt nix mit Typo3 zu tun, oder?

> mich würde interessieren, ob es eine Möglichkeit gibt ein mehrmaliges
> Absenden eines Formulars zu verhindern. Da mein Formular nur ein Frame
> innerhalb des Backends ist, ist das an sich nicht so tragisch, aber ich
> würde doch gern sicher gehen.
> Ich habe es mit unset($_POST['data']) probiert um das data array los zu
> werden. und auch mit unset($data) wobei $data mein lokales array ist.
> Beides bringt leider keinen Erfolg. F5 endet immer im ungewünschten
> wiederholten Datenbankeintrag.
mir sind da zwei einfache Wege bekannt:

1) nachdem das Formular erfolgreich verarbeitet wurde, machst Du einen
Header-Redirect header('Location: '...), dann wird der Redirect mit F5
erneut geladen und nicht das Formular.

2) Im Formular erstellst Du ein Hidden-Field mit einem zufälligen Wert den
Du auch in der Session speicherst. Wenn das Formular abgeschickt wurde,
dann prüfst Du ob das Wert aus dem Hidden-Field mit der Session
übereinstimmt. Du solltest nicht vergessen, bei Erfolg den Wert aus der
Session zu löschen.

gibt es noch andere Ansätze?

gruß,
martin


More information about the TYPO3-german mailing list