Gerold: Formulare

Hallo!
Wie kann ich verhindern, wenn ein Formular abgesendete wurde dass dies ein zweites mal passiert. zB. Durch mehrmaliges Drücken des Submitbutton oder durch den Zurückbutton und erneutes Drücken des Submitbutton?

Vielen Dank
Gerold

  1. Holladiewaldfee,

    Wie kann ich verhindern, wenn ein Formular abgesendete wurde dass dies ein zweites mal passiert. zB. Durch mehrmaliges Drücken des Submitbutton oder durch den Zurückbutton und erneutes Drücken des Submitbutton?

    Schau mal in den HTML-Quelltext dieses Forums ;-)

    Du verpasst jedem Formular eine weitestgehend einzigartige ID. Wenn ein Formular abgesendet wurde, schaust Du zunächst nach, ob bereits ein Formular mit dieser ID abgeschickt wurde (z.B. in einer Datenbank). Ist das nicht der Fall, verarbeitest Du die Daten und trägst die ID des Formulars in die Datenbank ein. Die ID musst Du natürlich dynamisch generieren.

    <input type="hidden" name="formid" value="....." />

    Ciao,

    Harry

    --
      Hä? Was? Signatur?! Kann man das essen?
      Wirrwarr: sh:| fo:) ch:] rl:° br:& n4:° ie:% mo:) va:) de:[ zu:) fl:( ss:) ls:[ js:|
    1. <input type="hidden" name="formid" value="....." />

      Hallo Harry!

      Vielen Dank für deine Antwort. Wenn ich dich richtig verstehe verpasse ich diesem input unter value eine Zufallszahl(ID). Nach dem Absenden trage ich in eine DB diese ID und ev. den Formnamen ein und schau dann immer nach dem Absenden eines Formular in dieser Tabellen nach ob ein Formular mit dieser ID abgesendt wurde. Dieser Teil ist mir klar. Wie aber mache ich das mit der ID? Beim ersten Aufrufen des Formulares wird die ID generiert. Was passiert wenn das Formular abgesendet wird und danach der Zurückbutton gedrückt wird? Wird dann nicht einen neue ID generiert?

      Vielen Dank
      Gerold

      1. Holladiewaldfee,

        Vielen Dank für deine Antwort. Wenn ich dich richtig verstehe verpasse ich diesem input unter value eine Zufallszahl(ID).

        Jep. Wenn Du PHP verwendest kannst Du da mit microtime(), uniqid() und md5() was schönes basteln.

        Nach dem Absenden trage ich in eine DB diese ID und ev. den Formnamen ein und schau dann immer nach dem Absenden eines Formular in dieser Tabellen nach ob ein Formular mit dieser ID abgesendt wurde.

        Den Teil mit dem Formnamen kannst Du Dir schenken. Die ID reicht.

        Dieser Teil ist mir klar. Wie aber mache ich das mit der ID? Beim ersten Aufrufen des Formulares wird die ID generiert.

        Jep.

        Was passiert wenn das Formular abgesendet wird und danach der Zurückbutton gedrückt wird? Wird dann nicht einen neue ID generiert?

        Kommt drauf an. Wenn der Browser die Seite vom Server neu anfordert, ja. Dann ist aber auch das Formular wieder leer und Du brauchst Dir keine Sorgen machen, daß der gleiche Text mehrfach gepostet wird. Wenn der Browser die Seite nicht neu anfordert sondern aus seinem Cache holt oder sonstwoher zaubert, dann ist die ID dieselbe.

        Ciao,

        Harry

        --
          Hä? Was? Signatur?! Kann man das essen?
          Wirrwarr: sh:| fo:) ch:] rl:° br:& n4:° ie:% mo:) va:) de:[ zu:) fl:( ss:) ls:[ js:|
        1. Vielen Dank

          Grüsse aus Wien

          Gerold

    2. Du verpasst jedem Formular eine weitestgehend einzigartige ID.

      Hallo,

      spricht eigentlich etwas dagegen, daß man statt einer ID die IP-Adresse für solche Sachen heranzieht ?? Soviel ich weiß gibt es wechselnde IPs waehrend einer Session nur bei Anonymizern.

      vielen Dank

      1. Holladiewaldfee,

        spricht eigentlich etwas dagegen, daß man statt einer ID die IP-Adresse für solche Sachen heranzieht ?? Soviel ich weiß gibt es wechselnde IPs waehrend einer Session nur bei Anonymizern.

        Ja: Nämlich daß mehrere Leute über den gleichen Proxy kommen. Dann hast Du immer die IP des Proxys drin. Ausserdem kann's ja auch mal sein, daß Du mehr als ein Formular abschicken willst. Naja, und dann mußt Du Dir noch einfallen lassen, nach welchem Zeitraum Du die IP-Formular-ID aus der Datenbank wieder löschst. Zusammengenommen ist es also eine ziemlich schlechte Idee, die IP für sowas herzunehmen.

        Ciao,

        Harry

        --
          Hä? Was? Signatur?! Kann man das essen?
          Wirrwarr: sh:| fo:) ch:] rl:° br:& n4:° ie:% mo:) va:) de:[ zu:) fl:( ss:) ls:[ js:|
      2. spricht eigentlich etwas dagegen, daß man statt einer ID die IP-Adresse für solche Sachen heranzieht ?? Soviel ich weiß gibt es wechselnde IPs waehrend einer Session nur bei Anonymizern.

        In diesem Fall ja. Es handelt sich uA. um ein Urlaubsformular. Der User kommt immer mit der gelichen IP. Somit kann er nur einmal einen Uraub beantragen.

        LG
        Gerold