Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Login mit Benutzername oder E-Mail-Adresse in php

Der Anmeldeparameter ist für E-Mail und Benutzername gleich. Nicht gerade falsch, wenn Sie ein einziges Anmeldefeld haben, das beides akzeptiert.

Sie können die Bedingung in die Abfrage selbst einfügen, wenn Sie sich nicht sicher sind, ob es sich um eine E-Mail oder einen Benutzernamen handelt.

$login=$_REQUEST['login'];
$query = "select * from  user_db where ( username='$login' OR email = '$login') and password='$password'"

Bearbeiten: Eine PDO-ähnliche Lösung wird heutzutage viel mehr bevorzugt, da die oben genannte SQL-Injektion unterliegt. Die Logik bleibt die gleiche, aber sie würde etwa so aussehen:

$query = "
    SET @username = :username
    SELECT * FROM user_db
       WHERE ( username = @username OR email = @username) 
       AND password = :password
";

$statement = $pdoObject->prepare($query);
$statement->bindValue(":username", $login, PDO::PARAM_STR);
$statement->bindValue(":password", $password, PDO::PARAM_STR);
$statement->execute();