Ich versuche, meine Benutzer mit einer E-Mail oder einem Benutzernamen anmelden zu ermöglichen. Im Moment wird nur der Benutzername akzeptiert. Meine Arbeits SQL sieht wie folgt aus:Login mit Benutzername oder E-Mail
$sql = "SELECT * FROM customers WHERE login = '".$username."' AND password = '".$password."'";
Info:
$username
hat den Wert von$_POST['username']
$password
hat den Wert vonmd5($_POST['password'])
Nun würde Ich mag es zu verlängern an die E-Mail-Adresse kann ein Kunde in seinem Profil angeben. My SQL sieht wie folgt aus:
$sql = "SELECT * FROM customers WHERE (login = '".$username."' OR email = '".$username."') AND password = '".$password."'";
Ich werde überprüfen Sie diese SQL mit:
$result = mysql_query($sql);
mysql_num_rows($result)
Aber im Moment ist es nicht funktioniert. Wenn ich in meinem SQL OR
verwende, gibt mysql_num_rows
0
zurück. Was könnte das Problem sein? Oder gibt es einen anderen und besseren Weg, dies zu erreichen?
Ihr Code ist in Ordnung, also stimmt etwas anderes nicht. Sie müssen Ihre Abfragen direkt in der Datenbank ausführen, indem Sie phpMyAdmin verwenden, um festzustellen, was das ist. Vergessen Sie auch nie, das Ergebnis eines 'mysql_query'-Aufrufs auf Erfolg zu prüfen, und führen Sie' mysql_error' aus, um das Problem zu ermitteln, falls es einen gibt. –
Alle mysql_-Funktionen sind veraltet. Auch Ihr Code ist offen für [SQL-Injektionen] (http://xkcd.com/327/). Und md5-Passwörter sind nur geringfügig besser als sie im Klartext zu speichern. – Arjan
Was bedeutet "Es funktioniert nicht"? Gib mehr Details an. Wenn Sie Probleme mit einer Abfrage haben, sollten Sie immer "echo $ your_query" angeben, um genau zu wissen, was an die Datenbank gesendet wird. – Jocelyn