Hello,
nun könnte sich ein User mit einer eMail Adresse zweimal anmelden, das möchte ich natürlich nicht. Hab nun in verschiedenen Tutorials zwei Optionen gelesen.
1.) Ich schreibe ein SQL prüfe mit WHERE email = xxx wenn etwas zurück kommt, ist diese eMail Adresse bereits vorhanden.
Das wäre falsch.
Siehe http://de.wikipedia.org/wiki/Time-of-Check-to-Time-of-Use-Problem
2.) Ich setzte auf das Feld email ein indize, schau ob im Error das Wort „Duplicate“ vorkommt, wenn ja, wird diese eMail bereits verwendet.
Das wäre fast richtig:
Je ein Unique Index wäre erforderlich auf allen SPALTEN, die keine Doubletten enthalten dürfen.
siehe http://dev.mysql.com/doc/refman/5.1/de/constraint-primary-key.html
und http://dev.mysql.com/doc/refman/5.1/de/error-messages-server.html
und http://de2.php.net/manual/en/mysqli.connect-errno.php
Was sagt ihr, welche Version soll ich nehmen bzw. gibt es noch eine andere Möglichkeit dieses zu prüfen?
Die richtige!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg