dedlfix: Submit-Button

Beitrag lesen

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";