【发布时间】:2017-10-31 16:36:02
【问题描述】:
我有一个数据库,其中包含用户“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>
【问题讨论】:
-
尝试在
$data['password']上使用trim()它会从字符串中删除空格 -
具体出了什么问题?您是否收到“密码错误”消息?您是否进行了任何故障排除?您收到任何错误消息吗?
$data、$user、$password_db的值是多少? -
另外,我不熟悉 RedBeanPHP,但我没有遵循您的代码逻辑。看起来您找到了具有特定用户名的用户,然后执行单独的查询以查找具有特定密码的用户,但从未找到特定的用户名/密码对。如果未找到用户,则显示“密码错误”。如果未找到密码,则不会发生任何事情。您的目标是验证用户名/密码对吗?
-
@ArtemIlchenko 这是个坏建议。
-
@GrumpyCrouton 不好的做法是按原样存储密码:)