Hi,
das ganze funktioniert einwandfrei, das problem ist, wenn jemand den refresh button vom browser anklickt, schreibt es den letzten eintrag automatisch wieder in die db. wenn ich also die eingabe mache, auf submit klicke und dann noch 2 mal auf refresh klicke schreibt es den eintrag 3 mal in die db.
ja, weil das entsprechende Script dann auch mehrfach ausgeführt wird und damit die Aktionen (SQL Insert) wiederholt.
Wenn du Odiums Variante mit dem Redirect umgehen möchtest, bleibt dir nichts anderes übrig, als vor dem Eintrag in die DB zu prüfen ob die Daten schon mal eingetragen wurden.
Das kannst du machen:
- wenn du den Session-State aktiviert hast, indem du jeden Eintrag zusätzlich mit der SessionID versiehst (extra Spalte in DB-Tabelle)
- wenn du kein Session-State aktiviert hast, in dem du einen eindeutigen Code per Hand generierst und immer über alle Seiten mitschleifst
Ich kenne deine persönlichen Bedürfnisse nicht und weiß nicht, welche Variante (Odiums oder meine) in deinem Fall besser wäre
Ein was wichtiges möchte ich aber noch betonen bei Datenbankoperationen mit User-Input:
Sicherheitsrisiko SQL-Injection!!
"All input is evil until proven otherwise"
mehr Infos und Gegengifte findest du u.a. auf www.aspheute.com
Viele Grüße, Frank