Mysql
 sql >> Base de données >  >> RDS >> Mysql

se connecter avec un nom d'utilisateur ou une adresse e-mail en php

Le paramètre de connexion est le même pour l'e-mail et le nom d'utilisateur. Pas tout à fait incorrect si vous avez une seule boîte de connexion qui accepte l'un ou l'autre.

Vous pouvez mettre la condition dans la requête elle-même si vous ne savez pas s'il s'agit d'un e-mail ou d'un nom d'utilisateur.

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

Modifier : Une solution de type PDO est beaucoup plus préférée de nos jours car ce qui précède est soumis à une injection SQL. La logique reste la même, mais cela ressemblerait à ceci :

$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();