Hello,
Ich habe ein Web-Formular! Manchmal kommt es vor, dass wenn jemand extrem schnell und mehrmals hintereinander auf den SUBMIT-Button klickt, dass dann ein Datensatz zweimal vorkommt (außer AUTO INCREMENT)
Dafür ist Lock nicht gedacht.
Die zwei Klicks erzeugen außerdem sowieso zwei Connections.
Locks von einer Connection zur nächsten zu tragen, ist nicht ohne weiteres möglich und außerdem "gefährlich". Lost Locks würden Dir nämlich die DB lahmlegen.
Der richte Weg wäre die Verwendung der Request-Ident-Nummer im Formular.
Speichere diese mit ab und mache sie in der DB Unique. Dann kann sie ja nur einmal abgeichert werden und jeder zweite Versuch würde zu einem Fehler führen, der auswertbar ist.
Du findest die Nummer unter $_SERVER["UNIQUE_ID"]
Die wird bei jedem Request neu generiert. Du brauchst sie also nur mit auszugeben und dann in der Datenbank ablegen. Wenn Du es noch besser machen willst, trägst Du sie beim Senden des Formulares auch in die Session ein. Wenn Sie beim Rücksenden nicht passt, hat jemand gemogelt...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
