Bernie: mehrfach speichern von Formularen verhindern

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

  1. 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.

    -- Neu im Forum! Signaturen kann man ausblenden!
    1. 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

      1. 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.

        -- Neu im Forum! Signaturen kann man ausblenden!
        1. 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

  2. Wie kann ich das mehrfachabspeichern verhindern?

    Bspw. mit Post/Redirect/Get

  3. Hallo Bernie,

    Wie kann ich das mehrfachabspeichern verhindern?

    https://wiki.selfhtml.org/wiki/PHP/Tutorials/Reloadsperre

    Bis demnächst
    Matthias

    -- Rosen sind rot.