registrierung:benutzername überprüfen ob vorhanden php mysql
-
Hallo liebe Forumuser,
Ich bin am verzwewifeln.
Ich versuche gerade eine registrierung zuschreiben.
Dort soll bei der Registrierung überprüft werden ob der benutzername schon vergeben ist wenn ja soll er eine Fehlermeldung geben und wenn nicht alles in der Datenbank eintragenbis jetzt bin ich so weit gekommen:
$pruefen = "SELECT username FROM login WHERE username='$username'"; $result = mysql_query($pruefen); $count = mysql_num_rows($result); if ($count == 1) { echo "Dieser Benutzer existiert bereits. Bitte wählen sie einen anderen Benutzernamen."; } else { echo "Nicht gefunden"; }
mir wird immer gesagt das der benutzer nicht gefunden wurde obwohl er schon 5 mal in der Datenbak drinne ist und er setzt denn selben benutzernamen denn nochmal rein
ich hoffe das ihr mir da weiter helfen könnt danke!
mfg derdefeckter
-
Na vielleicht gint Dir count ja eine Zahl > 1 zurück.
Du solltest aber so nicht arbeiten. Stichwort SQLINJEKTION
-
ist der username kein Keyfeld? Würde eigentlich Sinn machen und doppelte Einträge verhindern
-edit-
was unix-tom mit sqlinjektion meint: sorg dafür, dass $username für die Verwendung in SQL-Befehlen vorbereitet wird, bevor du ihn verwendest (durchmysql_real_escape_string
). Ansonsten kann es böse enden
-
Unix-Tom schrieb:
Na vielleicht gint Dir count ja eine Zahl > 1 zurück.
Du solltest aber so nicht arbeiten. Stichwort SQLINJEKTION
wenn er 5 mal drin steht sowieso
-
Hallo leute,
Ich habe es jetzt hin bekommen!
Wie kann ich das denn genau anstellen also die SQLINJEKTION
könnt ihr mir dazu mehr sagen und ein wenig erklärenich wäre euch sehr dankbar!
mfg derdefeckter
-
die Antwort auf diese Frage wurde dir bereits gegeben. Der Grund dafür ist, dass sonst jemand statt einem usernamen einen sql-Befhel schreiben könnte, der dir zum Beispiel deine komplette Datenbank killt.
-
hallo Leute
erstmal danke für die grosse Hilfe!
wäre das so richtig?
$pruefen = "SELECT username FROM login WHERE username='".mysql_real_escape_string($username)."'"; $result = mysql_query($pruefen); $count = mysql_num_rows($result);
und muss ich das nochmal bei dem into befehl machen? oder langt das da schon?
mfg derdefeckter
-
Hallo,
so siehts gut aus
Das solltest du bei jedem SQL-Befehl machen der durch einen anderen Benutzer beeinflusst werden kann! So auch bei INSERT oder UPDATE!
VlG