Peter: Formular reloadsperre

Hallo..

Ich habe ein Formular mit dem ich mit "Post" den inhalt an einphpscript/MySqldatenbank übergebe .... soweit so gut

Jetzt gibt es aber leute die drücken dann vielleicht auf reload...und dann habe ich den mist 2 mal in der Datenbank.. hat wer eine Idee wie ich das sperren kann.

lg Peter

  1. Tag

    Jetzt gibt es aber leute die drücken dann vielleicht auf reload...und dann habe ich den mist 2 mal in der Datenbank.. hat wer eine Idee wie ich das sperren kann.

    Füge in jedes Formular etwas in der Art

    <input type="hidden" name="uniqformid" value="<?= md5(uniqid(microtime(),1).getenv("REMOTE_ADDR")) ?>" />

    ein. Wenn Du die übermittelten Daten speicherst, schaust Du zunächst nach, ob mit dieser uniqformid schonmal was gespeichert wurde. Wenn nicht - eintragen. Wenn schon - Fehlermeldung. Mit der Zeit kannst Du dann irgendwie die alten uniqformids wieder löschen.

    Ciao,

    Harry

    1. Dank dir... hat mir seh geholfen

      Tag

      Jetzt gibt es aber leute die drücken dann vielleicht auf reload...und dann habe ich den mist 2 mal in der Datenbank.. hat wer eine Idee wie ich das sperren kann.

      Füge in jedes Formular etwas in der Art

      <input type="hidden" name="uniqformid" value="<?= md5(uniqid(microtime(),1).getenv("REMOTE_ADDR")) ?>" />

      ein. Wenn Du die übermittelten Daten speicherst, schaust Du zunächst nach, ob mit dieser uniqformid schonmal was gespeichert wurde. Wenn nicht - eintragen. Wenn schon - Fehlermeldung. Mit der Zeit kannst Du dann irgendwie die alten uniqformids wieder löschen.

      Ciao,

      Harry

  2. Huhu Peter

    ein Beispiel findest Du hier

    http://php-faq.de/q-formular-mehrfach.html

    eine weitere Variante wäre es einen DB-Eintrag beim Aufruf des
    Formulares zu machen, dabei einen Datensatz mit eindeutiger ID anzulegen und diese ID im Formular in einem hidden-field mitschleppen.

    Beim "submit" des Formulares wird der Datensatz mit der entsprechenden ID "updated".[1]

    Damit gibt es keine Doppelpostings und Du kannst nebenbei auswerten wie viele User das Formular starten und es dann doch nicht abschicken.[2]

    so far ...

    lulu

    [1] sorry for this horrible denglish

    [2] Das sind dann alle Einträge in der DB mit ID aber ohne weiteren Inhalt.