Norbert: Submit-Button

Hallo,

wieso ist es ueberhaupt moeglich ein Formular mehrfach abzusenden?
Ich meine jetzt nicht, dass man in der History zurueckgeht und ein GET-Formular nochmals absendet, sondern dass man mehrfach auf den Submit-Button clicken kann, und der bloede Browser das Formular auch noch mehrfach absendet.

Wir hatten am Samstag einen Deppen, der da dreimal hintereinander draufgehaemmert hat. Vielleicht wollte er so die Dringlichkeitsstufe einstellen, wer weiss ...

Gruss und Dank
Norbert

  1. Hallo,

    wieso ist es ueberhaupt moeglich ein Formular mehrfach abzusenden?

    Technisch debingt kann ich es dir nicht sagen.
    Optisch allerdings ist es recht einfach zu erklären. Nachdem Server unterschiedliche Response-Zeiten haben tritt bis zum möglichen Aufbau der nächsten Seite immer eine Pause auf. Diese könnte man nun mit einem Pausebild füllen oder mit einem weissen Hintergrund oder die alte Seite solange stehen lassen bis die neue verwertbare Informationen liefert.
    Dass ein Formular mehr als einmal abgesendet werden kann liegt am programmierer und könnte theoretisch auch mal Absicht sein.

    bydey

    --
    -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
    -- Navigate all your PHP web projects with  PHP Project Browser--
    1. Hai,

      natuerlich kann ich das serverseitig abfangen.
      Aber es ist immer besser, die Ursache zu "bekaempfen" als sich mit den Auswirkungen rumzuschlagen.
      Der Browser weiss doch am besten, was er versendet hat, also soll er auch aufpassen.

      Warum es sinnvoll sein koennte, ein Formular mehrfach zu versenden,
      will mir allersings nicht einleuchten ... also sach ma ...

      Gruss Norbert

  2. echo $begrüßung;

    wieso ist es ueberhaupt moeglich ein Formular mehrfach abzusenden?

    Hier eine Änderung zu erwirken liegt nicht in deiner Macht. Die Frage nach dem Warum ist müßig. Zielführender ist es, mögliche Gegenmaßnahmen zu bewerten und einzusetzen.

    Clientseitig kann nach dem erfolgreichen Submit ein Flag gesetzt werden, der weitere Submits unterbindet. Man kann auch den Absende-Button sperren (disabled). Inwieweit das auf das Absenden mit Enter einen Einfluss hat, weiß ich nicht.

    Ohne aktivierte clientseitige Programmiersprache funktionieren diese Ansätze aber nicht. Serverseitig lässt es sich lösen, indem ein Einmalcode generiert wird, der dem Formular versteckt mitgegeben wird. Beim Empfang der Formulardaten prüft man, ob dieser Einmalcode bereits bearbeitet wurde - z.B. weil er nicht mehr in der Liste der gültigen Codes steht, oder in einer entsprechenden Sessionvariable - und lehnt in dem Fall eine weitere Bearbeitung ab. Wichtig ist, den Anwender nicht durch die Fehlermeldung zu verwirren. Wenn er es schafft, das Formular mehrmals abzusenden, bekommt er das Ergebnis der letzten Absendung zu Gesicht und das ist die Fehlermeldung. Nicht dass er dadurch animiert wird, ein neues Formular mit gleichem Inhalt auszufüllen ...

    echo "$verabschiedung $name";

    1. Hai,

      wieso ist es ueberhaupt moeglich ein Formular mehrfach abzusenden?
      Hier eine Änderung zu erwirken liegt nicht in deiner Macht.

      stimmt,
      jedoch sind seit NS2.0 schon einige Revisionen ins Land gegangen.
      Will sagen, dieses Feature ist also ganz bewusst implementiert.
      Fragt sich also nur warum ...

      Die Frage nach dem Warum ist müßig.

      wieso,
      im Grunde stoert das doch jeden, aber es wird bei jeder neuen Revision uebernommen,
      also ist es volle Absicht!
      Oder willst Du mir/uns einreden, die Entwickler waeren zu bloed das zu aendern?
      Sicher nicht ... ;-)

      Gruss Norbert

      1. Hallo,

        Die Frage nach dem Warum ist müßig.
        wieso,
        im Grunde stoert das doch jeden, aber es wird bei jeder neuen Revision uebernommen,
        also ist es volle Absicht!
        Oder willst Du mir/uns einreden, die Entwickler waeren zu bloed das zu aendern?
        Sicher nicht ... ;-)

        Wer legt eigentlich fest, was nach Submit passieren muss?
        Was hilft es dir, wenn FF es in deinem Sinne interpretiert, O und IE aber nicht!?
        Es gibt etliche actions, die du einer <form> aufzwingen kannst. Nur weil dir und mir keine Gründe für ein Mehrfachverschicken eines Formulars einfallen heisst es noch lange nicht, dass es diese nicht gibt.

        bydey

        --
        -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
        -- Navigate all your PHP web projects with  PHP Project Browser--
      2. echo $begrüßung;

        wieso ist es ueberhaupt moeglich ein Formular mehrfach abzusenden?
        Hier eine Änderung zu erwirken liegt nicht in deiner Macht.
        stimmt,
        Will sagen, dieses Feature ist also ganz bewusst implementiert.
        Fragt sich also nur warum ...

        Es sieht mir nicht danach aus, als ob das bewusst implementiert ist. Es scheint eher, dass nichts dagegen unternommen wird, mehrfache Request-Wünsche zur selben Quelle zu unterbinden. Warum auch? Nur weil du einen Anwendungsfall hast, bei dem dieses Verhalten stört, ist es noch lange nicht völlig unsinnig.

        echo "$verabschiedung $name";