sql >> Databasteknik >  >> RDS >> Mysql

logga in med användarnamn eller e-postadress i php

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


  1. Kommer ett SQL Server Job att hoppa över en schemalagd körning om den redan körs?

  2. WHERE-satsen körs bättre före IN och JOIN eller efter

  3. Hur byter man värden på två rader i MySQL utan att bryta mot unika begränsningar?

  4. Vad är databasberoenden?