Tom: Merfachabsenden eines Formulars unterbinden - wie macht ihr das?

Beitrag lesen

Hello,

Man wird beim aktualisieren ja gefragt "Neu senden"?..

Das hast Du eben aber so nicht gesagt.
Es handelt sich hier auch um mehrere Dinge, die Du beachten musst.

1. Abfangen eines Mehrfachposts, der bei manchen Browsern möglich ist,
   solange noch kein Response eingetroffen ist
  (wie das serverseitig geht, habe ich beschrieben)

2. Rücksetzen der Seite, damit sie die gespeicherten Postdaten verwirft
   und auch bei History-Back nicht nochmal sendet.
   Dafür ist der Statuscode 205 da
   Der hat nur den Nachteil, dass Du kein response-Body mitsenden kannst
   Den musst Du Dir dann über einen Location Header extra anfordern.

Dazu benötigt man schon fast wieder eine Session. Man will dem User
   schließlich die eingetragenen Daten nochmals vorlegen

3. Damit der Request auch bei einem Multipost vollständig abgearbeitet
   wird und keine halben Sachen in Datenbanken oder Datein eingetragen
   werden, muss man den User-Abort während der Formularverarbeitung auf
   dem Server abschalten.
   http://de3.php.net/manual/en/function.ignore-user-abort.php

Sollte nämlich der Folgerequest noch während des bereits laufenden
   ausgelöst werden, könnte die Barbeitung des bereits laufenden einfach
   mittendrin abgebrochen werden. Müssen nun aufwändige von einander abhängige
   Datenmanipulationen durchgeführt werden, könnten die damit inkonsistent werden.

Außerdem kannst Du noch auf dem Client mittels JavaScript den Submit-Button abschlaten, wenn er einmal gedrückt wurde.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de