我有一个包含用户" admin"用密码" admin"。在db.php
中,我连接了RedBeaNPHP。 DB : id,user,password,authority
。但我无法比较密码。出了什么问题?
if( empty( $errors))
{
$user = R::find( 'users', 'login = ?' , array($data['login']) );
if($user)
{
$password_db = R::find( 'users', 'password = ?' ,
array($data['password']) );
if( $password_db)
{
echo 5555;
}
} else
{
echo 'Wrong password';
}
HTML代码:
<div id="login">
<h1>Auth</h1>
<form name='form-login' method="post">
<span class="fontawesome-user"></span>
<input type="text" name="user" placeholder="Username">
<span class="fontawesome-lock"></span>
<input type="password" name="password" placeholder="Password">
<input type="submit" value="Login" name="do_login">
</form>
答案 0 :(得分:0)
我发现问题在于通过登录查找用户,您在那里传递无效数据。考虑$ data将有发布数据。
Repalce
$user = R::find( 'users', 'login = ?' , array($data['login']) );
// $data['login'] is not defined.
与
$user = R::find( 'users', 'login = ?' , array($data['user']) );
答案 1 :(得分:0)
如果您阅读了RedBean文档(https://redbeanphp.com/index.php?p=/finding),您会看到&#34;发现&#34;返回一个数组,如果没有结果则返回一个空数组。 出于登录目的,我使用FindOne只返回第一行或null。 另一个提示,当你谈论登录时,不要在代码上经济实惠。 做任何比较都可以,不要忘记代码和SQL注入。