Inloggningsparametern är densamma för både e-post och användarnamn. Inte direkt felaktigt om du har en enda inloggningsruta som accepterar heller.
Du kan lägga till villkoret i själva frågan om du inte är säker på om det är ett e-postmeddelande eller ett användarnamn.
$login=$_REQUEST['login'];
$query = "select * from user_db where ( username='$login' OR email = '$login') and password='$password'"
Redigera: En PDO-liknande lösning är mycket mer föredragen nuförtiden eftersom ovanstående är föremål för SQL-injektion. Logiken förblir densamma, men du skulle få det att se ut ungefär så här:
$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();