我正在尝试使用用户名或电子邮件创建登录
我的代码是:
$username=$_REQUEST['login'];
$email=$_REQUEST['login'];
$password=$_REQUEST['password'];
if($username && $password) {
$query="select * from user_db where username='$username' and password='$password'";
} else if ($email && $password) {
$query="select * from user_db where email='$email' and password='$password'";
}
Run Code Online (Sandbox Code Playgroud)
使用用户名登录成功但使用电子邮件登录无效.请帮我!
Rec*_*zer 25
电子邮件和用户名的login参数相同.如果您有一个接受任何一个的登录框,则不完全错误.
如果您不确定它是电子邮件还是用户名,您可以将条件放在查询中.
$login=$_REQUEST['login'];
$query = "select * from user_db where ( username='$login' OR email = '$login') and password='$password'"
Run Code Online (Sandbox Code Playgroud)
编辑: 现在更喜欢类似PDO的解决方案,因为上面的内容受SQL注入.逻辑保持不变,但你看起来像这样:
$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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21679 次 |
| 最近记录: |