sql >> Base de Datos >  >> RDS >> Mysql

iniciar sesión con nombre de usuario o dirección de correo electrónico en php

El parámetro de inicio de sesión es el mismo para el correo electrónico y el nombre de usuario. No es exactamente incorrecto si tiene un único cuadro de inicio de sesión que acepta cualquiera de los dos.

Puede poner la condición en la consulta misma si no está seguro de si es un correo electrónico o un nombre de usuario.

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

Editar: Hoy en día se prefiere mucho más una solución similar a PDO, ya que lo anterior está sujeto a la inyección de SQL. La lógica sigue siendo la misma, pero debería verse así:

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