sql >> Databáze >  >> RDS >> Mysql

přihlaste se pomocí uživatelského jména nebo e-mailové adresy v php

Parametr přihlášení je stejný pro e-mail i uživatelské jméno. Není to úplně nesprávné, pokud máte jediné přihlašovací pole, které přijímá obojí.

Pokud si nejste jisti, zda se jedná o e-mail nebo uživatelské jméno, můžete podmínku vložit do samotného dotazu.

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

Upravit: Řešení podobné PDO je v dnešní době mnohem preferovanější, protože výše uvedené podléhá SQL injection. Logika zůstává stejná, ale vypadalo by to nějak takto:

$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. Další chyba UnicodeEncodeError při použití metody pandas to_sql s MySQL

  2. Nastavení správné velikosti innodb_log_file_size v mysql

  3. Upgrade PostgreSQL 11 na PostgreSQL 13 s TimescaleDB a PostGIS v Linuxu pomocí pg_upgrade

  4. Zobrazení seznamu PostgreSQL