Mehrfaches absenden von Formular verhindern

Peter Klein

Erfahrenes Mitglied
Und noch ein thema habe ich, was mich brennend interessiert.

Wie kann man das mehrmalige absenden von Formulardaten verhindern?
Wenn man ausversehen mehrmals auf den submit-Button klickt, soll es trotzdem nur einmal versendet werden.

Gibts da nen Lösungsansatz für?

Peter
 
Hi

Hm,..von JavaScript habe ich ja noch weniger Ahnung.

Was ist den wenn der Benutzer JavaScript ausgeschaltet hat?Dann kann man diese Lösng ja auch canceln denke ich mal.
 
Eine ganz einfache Lösung wäre auch das setzen von einer Session-Variable
oder einem Cookie ob schon einmal das Formular gesendet wurde.

Falls du eine Serverbasierte Lösung willst müsstest du dir schon IP und Datum
des Absenders merken und das ganze speichern und abgleichen.

Ich denke aber die erste Lösung reicht schon ;)

lg
 
Mensch hier schläft ja alles ein wenn man nichts schreibt :)
Dachte andere helfen evt auch mal...

Besteht das Problem noch?

Ich würde mir die aktuelle IP mit dem dazugehörigen Formularnamen und der Uhrzeit in eine mySQL-Tabelle speichern und dann beim Formularaufbau gucken ob die IP in den letzten x Minuten schonmal einen Eintrag bekommen hat... Ganz einfach.

Aber der Aufwand ist trotzdem höher als alles in eine Session zu speichern.
Ich meine wer hat schon lust immer den Browser neu zu starten nur um dich zu ärgern und die Formulardaten öfter zu senden?!

Ansonsten evt noch ne Captcha-Lösung?!
Dann muss man halt öfter den "Sicherheitscode" eingeben...

lg
 
IP muß nicht eindeutig sein....
1 router oder netzwerk 2-x.000 rechner werden von dem script alle unter der gleichen ip erkannt.
PHP:
$message = md5($_POST["nachricht"]....);
$kontrollstring = substr($message, 20);
/// DB connect...
$query = "select * from ... where kontroll = '".$kontrollstring."' && timestamp < ".time()-*;
if(empty(mysql_fetch_assoc(mysql_query($query))){
// führe aus
$query = "insert into .... (timestamp, kontroll) values (".time().", "'.$kontrollstring."'")";
mysql_query($query);
}
// FEHLER
 
Ja da hast du recht.
Bei deinem Script änder ich aber auch nur 1 Zeichen der Nachricht und schon kann ich das Formular nochmal senden...

lg
 
Wenn in einem Blog oder forum relativ viel und schnell nachrichten versendet werden, kannst du via ip jedoch auch dinge blockieren, die schon sinn beinhalten...
Bots senden meist die selben inhalte....
Es werden die daten nicht verarbeitet nur weil man mal wieder auf refresh drückt...
Bei AOL oder vereinzelten anderen Anbietern, bekommt man immer mal wieder schnell ne neue ip zugewiesen...
Am meisten sinn, beinhaltet wohl ein mix aus beidem ip auf zeit und md5 kontrollwert...

Perfekt gibt es meist nie, jeder hat eine andere Vorstellung...
Kurz und knapp viele wege führen nach Rom...
 
Zurück