Doppelte Absendung eines Formulars
Hannes
- php
Guten Morgen,
ein Benutzer gibt in einem Formular mehrere Angaben u.a. seine Email-Adresse an und sendet dieses zum Schluss ab.
Bei Absendung passiert folgendes:
Während das ganze abläuft, sieht der User eine Animation mit "Ihr Auftrag wird bearbeitet". Doch jetzt hatte ich den Fall dass ein User die Seite aktualisiert hat, obwohl sein Auftrag bereits erfolgreich bearbeitet wurde und er darüber informiert wurde...
Wie ist es für mich möglich, dass der Benutzer diese Seite nicht nochmal abrufen bzw. aktualisieren kann. Einfach eine Variable nach erfolgreicher Bearbeitung setzen die dann am Anfang des Script überprüft wird und notfalls abbricht?
Danke.
Bei Schilderung meines Problems bin ich im Ansatz auf die Lösung gestossen...
http://www.php-faq.de/faq-single.html#formular-mehrfach
ich löse das immer mit einem hash. der hash wird auf der formularseite generiert und in einem hidden feld und in der session gespeichert.
auf der seite die das Formular verarbeitet, wird als ersts geprüft ob der hash vorhanden ist (in der session), fals ja -> hash umgehen löschen, dann das formular verarbeiten. fals der hash nicht vorhanden ist, verarbeitung abbrechen.
der hash ist irgendwas eindeutigesmeistens irgendwie so: md5(Aktuelle Zeit in Millisekunden + rand(1,100000))