mehrfach speichern von Formularen verhindern
Bernie
- datenbank
- php
Hallo in die Runde. Ich habe auf meiner Homepage ein Formular das nach dem absenden in der Datenbank gespeichert wird. Wenn man nun ein paar Mal auf reload im Browser klickt, wird der Datensatz immer wieder abgespeichert. Wie kann ich das mehrfachabspeichern verhindern?
Bernhard
Ich habe auf meiner Homepage ein Formular das nach dem absenden in der Datenbank gespeichert wird. Wenn man nun ein paar Mal auf reload im Browser klickt, wird der Datensatz immer wieder abgespeichert. Wie kann ich das mehrfachabspeichern verhindern?
Indem du dem Formular bei Formularausgabe eine uniqueId gibst, und diese auch speicherst. Damit bist du aber erstmal nur in der Lage zu erkennen, dass die Daten aus dem gleichen Formular mehrfach gesendet werden.
Ich habe auf meiner Homepage ein Formular das nach dem absenden in der Datenbank gespeichert wird. Wenn man nun ein paar Mal auf reload im Browser klickt, wird der Datensatz immer wieder abgespeichert. Wie kann ich das mehrfachabspeichern verhindern?
Indem du dem Formular bei Formularausgabe eine uniqueId gibst, und diese auch speicherst.
Ich mache das auch so. Wobei diese uniqueid bei mir als Checksumme aus den gesendeten Eingaben gebildet wird.
Damit bist du aber erstmal nur in der Lage zu erkennen, dass die Daten aus dem gleichen Formular mehrfach gesendet werden.
Nun, das Senden ist die eine Sache. Die andere Sache betrifft das Speichern.
MfG
hallo
Ich habe auf meiner Homepage ein Formular das nach dem absenden in der Datenbank gespeichert wird. Wenn man nun ein paar Mal auf reload im Browser klickt, wird der Datensatz immer wieder abgespeichert. Wie kann ich das mehrfachabspeichern verhindern?
Indem du dem Formular bei Formularausgabe eine uniqueId gibst, und diese auch speicherst.
Ich mache das auch so. Wobei diese uniqueid bei mir als Checksumme aus den gesendeten Eingaben gebildet wird.
Man kann die Checksumme der zuletzt getägtigten POST-Daten in einem Cookie zwischenspeichern. Damit lassen sich Duplikate auch erkennen.
Nun, das Senden ist die eine Sache. Die andere Sache betrifft das Speichern.
Nicht nur das.
Man muss auch unterscheiden, was die Rolle der Formulardaten ist. Handelt es sich um neu anzulegende Daten oder lediglich um ein Update. Bei einem Update spielt es ja keine Rolle.
Bei neu anzulegenden Daten sollte man eigentlich die Daten anlegen, bevor sie vom User gefüllt werden, und seinem Input kommt dann nur eine Updatefunktion zu. Dazu muss man aber das Formular sicher an den Datensatz binden.
hallo
Ich habe auf meiner Homepage ein Formular das nach dem absenden in der Datenbank gespeichert wird. Wenn man nun ein paar Mal auf reload im Browser klickt, wird der Datensatz immer wieder abgespeichert. Wie kann ich das mehrfachabspeichern verhindern?
Indem du dem Formular bei Formularausgabe eine uniqueId gibst, und diese auch speicherst.
Ich mache das auch so. Wobei diese uniqueid bei mir als Checksumme aus den gesendeten Eingaben gebildet wird.
Man kann die Checksumme der zuletzt getägtigten POST-Daten in einem Cookie zwischenspeichern. Damit lassen sich Duplikate auch erkennen.
Die Idee ist sehr gut! Weil man damit nämlich auch clientseitig das mehrfache Senden verhindern kann, z.B. infolge Doppelklick.
MfG
Wie kann ich das mehrfachabspeichern verhindern?
Bspw. mit Post/Redirect/Get
Hallo Bernie,
Wie kann ich das mehrfachabspeichern verhindern?
https://wiki.selfhtml.org/wiki/PHP/Tutorials/Reloadsperre
Bis demnächst
Matthias