我不太确定我在这里缺少什么。
while($row = $result->fetch_assoc())
{
// Makes sure input from uid matches database entry
if($user == $row['first'])
{
if($pass == $row['password'])
{
echo "Logged in";
include "cookie.php";
}
else
{
echo "Failed login";
}
}
else
{
echo "Failed login";
}
}
我相信这是问题所在,尽管我无法确切地告诉问题究竟是什么。它用于在用户名($ user)错误时提供失败的登录消息。我希望页面在两者中的任何一个不正确时显示消息。密码错误时回复正常,但如果用户名不正确,则没有任何反应。
答案 0 :(得分:2)
为什么登录过程如此复杂?当简单的SQL Query可以执行此操作时:
SELECT * FROM your_table where first = $user AND password = $pass
你甚至不需要获取记录,你可以只计算&那样做。
这样,假设您在表中的first
列上是唯一的,如果匹配(身份验证成功),您将只获得1行,如果不匹配,则只获得1行(身份验证失败)。
无需循环播放if / else条件阻止。
答案 1 :(得分:-1)
您可能希望指定默认消息,如下所示:
$message = "Failed login";
while($row = $result->fetch_assoc()){
// Makes sure input from uid matches database entry
if($user == $row['first']) {
if($pass == $row['password']) {
$message = "Logged in";
include "cookie.php";
}else{
$message = "Failed login";
}
}else{
$message = "Failed login";
}
echo $message;
}