Alexander Foken: POST-Variablen leeren

Beitrag lesen

Moin Moin !

Du willst ein Formular, dessen Abschicken Deine DB verändert, reload-fest machen. Richtig?

Du mußt also Reloads erkennen.

Das kannst Du nur, wenn Du in das Formular (und damit in die übermittelten Daten) eine eindeutige ID einbaust, anhand derer Du mehrfaches Abschicken erkennen kannst (denn dann wird die eindeutige ID erneut übermittelt).

Sprich:

Im Formular <input type="hidden" value="$systemzeit$remoteaddr$zufallszahl" name="FINDME">

Im Request-Handler:

if (SchonBenutzt(parameter("FINDME"))) {  // z.B. "select count(*) as n from idlist where findme=?" liefert n>0
   Fehler("Bitte nur einmal abschicken")
} else {
   DatenEintragen(...)
}

Probier bitte mal aus, wie das Forum auf doppelte Submit-Versuche (BACK -> RELOAD) reagiert. Dann siehst Du es. (Im Quelltext: <input type="hidden" name="unid" value="Zy0Y06Yy74YZ">)

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"