ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
229
229
EMPFEHLEN
-
29.11.07 16:13 #1
- Registriert seit
- Apr 2007
- Beiträge
- 21
Hallo,
ich habe mal ein etwas anderes Problem. Ich bastel gerade ein Feedbackformular und will natürlich verhindern, dass Posts doppelt versendet werden. Das habe ich auch hinbekommen wie hier beschrieben:
http://www.selfphp.de/kochbuch/kochbuch.php?code=21
Nun mein Problem: Der User kann das Formular nur einmal absenden, auch wenn er es nachträglich mit anderen Daten füllt um zb etwas zu ergänzen...
Zusammengefasst:
Doppel versenden mit Submit-Button -> ja
Doppel versenden, durch Seitenaktualisierung oder durch Zurückbutton -> nein
Ich hoffe mein Problem ist verständlich und ihr könnt mir ob und wie das geht?Geändert von supachecka (29.11.07 um 16:57 Uhr)
-
Du könntest du checkID aus den eingegebenen Daten und der IP-Adresse des Benutzers erstellen lassen anstatt aus der Zeit.
$checkid = md5($_POST['vorname'] . $_POST['name'] . $_SERVER['REMOTE_ADDR']);
Dann musst du die auch nicht mehr im Formular übergeben, sondern immer vor dem Suchen der ckeckID in der Datenbank erstellen.
-
30.11.07 11:25 #3
- Registriert seit
- Apr 2007
- Beiträge
- 21
Aber würde ich so nicht jedem die Möglichkeit nehmen, zb zu einem Thema wie hier im Forum später nocheinmal ein Kommentar abzugeben?
-
Das kommt darauf an, welche Daten du in die Berechnung der Prüfsumme einfließen lässt. Wenn du den Wert nur aus Name und IP berechnen lässt, dann wird nur ein Eintrag pro Name und IP erlaubt, daher solltest du vielleicht noch den Inhalt und die Kategorie dazunehmen.
Zusätzlich sollte man noch erwähnen, dass eine sehr geringe Chance besteht, dass ein berechtigter Eintrag blockiert wird. Ein md5-Hash auch "nur" 128 Bit lang, es gibt also immerhin 2^128 verschiedene Werte. Auf 128 Bit kommt man allerdings auch schon mit der IP Adresse (32 Bit) und 16 lesbaren Zeichen (ca. 6 Bit), es gibt also sicher wesentlich mehr verschiedene Einträge, als md5-Hashs. Du könntest die Chance auf einen solchen Zufall noch weiter minimieren, wenn du die gespeicherten Prüfsummen einige Tage nach dem Eintragen wieder löschst.
-
30.11.07 12:22 #5
- Registriert seit
- Apr 2007
- Beiträge
- 21
Würde also bedeuten,wenn ich einen Teil der Nachricht und den Namen mit in die CheckID einbeziehe, kann ich mir ziemlich sicher sein, dass der Eintrag nicht doppelt erfolg.
Gut danke ich denke das hab ich verstanden...
-
30.11.07 12:24 #6
Einfachste Möglichkeit dieses "Risiko" zu minimieren, wäre einfach sha1() einzusetzen.
40-Byte Hash (bzw. 160bit).KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
30.11.07 13:29 #7
- Registriert seit
- Apr 2007
- Beiträge
- 21
Vielleicht fehlt mir doch noch ein bisschen das Verständnis für die Sache. Also eigentlich dachte ich dass aus einem Wert immer der selbe Hashwert ermittelt wird, soweit doch richtig oder?
Deswegen versteh ich nicht warum das das "Risiko" minimiert, dass ein Formular mit den selben Daten vom selben User doppelt abgeschickt wird und in die Datenbank eingetragen wird.
Meiner Meinung nach geht es doch nur um den Inhalt der Felder, oder lieg ich da falsch. Kann mir das wer erklären? Bin noch mehr verwirrt als vorher...
-
30.11.07 15:01 #8
Es gibt sogenannte Kollisionen bei Prüfsummen.
Sprich zwei unterschiedliche Werte können die selbe Prüfsumme ergeben.
Es ist selten, aber es kann passieren. Deshalb sollte man (meiner Meinung nach grundsätzlich) eher sha1 als md5 nutzen.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
Ähnliche Themen
-
mehrfaches ausloggen verhindern
Von Sketty im Forum PHPAntworten: 11Letzter Beitrag: 11.11.08, 14:41 -
Mehrfaches absenden von Formular verhindern
Von Peter Klein im Forum PHPAntworten: 11Letzter Beitrag: 06.09.08, 17:24 -
Mehrfaches.. Problem...
Von S-lord im Forum PHPAntworten: 8Letzter Beitrag: 19.12.07, 17:51 -
IEx 6.0 (SP2) ignoriert CSS in 2 von 15 Fällen?
Von Schendler im Forum CSSAntworten: 0Letzter Beitrag: 28.04.05, 11:04 -
Absenden Button: JA, Absenden Link: Wie?
Von stellenureinefrage im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 27.03.04, 11:26





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren