Parametr logowania jest taki sam dla adresu e-mail i nazwy użytkownika. Niezupełnie niepoprawne, jeśli masz jedno pole logowania, które akceptuje oba.
Możesz umieścić warunek w samym zapytaniu, jeśli nie masz pewności, czy jest to adres e-mail, czy nazwa użytkownika.
$login=$_REQUEST['login'];
$query = "select * from user_db where ( username='$login' OR email = '$login') and password='$password'"
Edytuj: Rozwiązanie podobne do PDO jest obecnie znacznie bardziej preferowane, ponieważ powyższe podlega wstrzyknięciu SQL. Logika pozostaje taka sama, ale wygląda to mniej więcej tak:
$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();