Php 用户名和密码正确时无法登录

Php 用户名和密码正确时无法登录,php,login,registration,Php,Login,Registration,您好,我正在php学院为php和mysql登录和注册表单编写本教程。一切进展顺利。。他展示了如何识别正确的表达方式,但要创建函数来回应错误。。是的,听起来不错。因此,前两个错误正确响应,但实际验证用户id和whatknot的错误不起作用。它显示了我在用户名和密码组合不正确时创建的错误,即使我提交了正确的信息。我创建了一些虚拟用户,但没有一个可以通过 这是我的密码 include 'core/init.php'; include 'includes/overall/header.php'; if

您好,我正在php学院为php和mysql登录和注册表单编写本教程。一切进展顺利。。他展示了如何识别正确的表达方式,但要创建函数来回应错误。。是的,听起来不错。因此,前两个错误正确响应,但实际验证用户id和whatknot的错误不起作用。它显示了我在用户名和密码组合不正确时创建的错误,即使我提交了正确的信息。我创建了一些虚拟用户,但没有一个可以通过

这是我的密码

include 'core/init.php';
include 'includes/overall/header.php';

if (empty($_POST) === false) {
$username = $_POST['username'];
$password = $_POST['password'];

if (empty($username) === true || empty($password) === true) {
$errors[] = 'Uh oh! You forgot to enter your username and password';

} else if (user_exists($username) === false) {
$errors[] = 'Who is that? Have you registered?';

} else if (user_active($username) === false) {
$errors[] = 'Account is not activated.';

} else {

$login = login($username, $password);
if ($login === false) {
$errors[] = 'That username and password combination is incorrect';

} else {
    $_SESSION['user_id'] = $login;
    header('Location:index.php');
    exit();
    }
}
print_r($errors);
}

include 'includes/overall/footer.php';

有人知道我做错了什么吗?我试过一些方法,但没有效果。例如,在视频中,他做的有点不同,并将他的查询放在同一条线上,但这给了我错误,所以我按照他最初的方式做了,并进行了查询变量,我只对我实际说的话有一点想法哈哈。。但这修正了错误。我尝试对未显示的其他函数执行此操作,但这导致了大量错误:

这真的很愚蠢吗?我以前也遇到过类似的问题,我知道是因为缺少分号,但我盯着这段愚蠢的代码看了这么久,却什么也没发现。。我重新观看了教程系列中的视频,每个视频都解释了10次这一切。。我的眼睛好像要流血或爆炸了。一些评论表明其他人也有类似的问题。。帮忙

我对所有这些php mysql都是新手,所以。。如果你像孩子一样对我说话,我不会生气。。事实上,这是值得赞赏的


谢谢。

我是否正确理解您现在无法登录

我过去也有过类似的问题。我看不出你的错误,但我会分享一种方法,让我发现错误

将MySQL查询作为字符串和表单输入的数据存储在变量中 重复这个变量 在phpMyAdmin中测试输出的字符串-如果查询错误,它将提示您该字符串出了什么问题。 另外,用LIKE而不是LIKE测试查询可能是值得的=

例如


我是否正确理解您现在无法登录

我过去也有过类似的问题。我看不出你的错误,但我会分享一种方法,让我发现错误

将MySQL查询作为字符串和表单输入的数据存储在变量中 重复这个变量 在phpMyAdmin中测试输出的字符串-如果查询错误,它将提示您该字符串出了什么问题。 另外,用LIKE而不是LIKE测试查询可能是值得的=

例如

这是我的代码:

function user_exists($username) {
  $username = sanitize($username); 
  return (mysql_result(mysql_query("SELECT * FROM `users` WHERE `username` = '$username' "),0) ==1) ? true : false; 
}
这是我的代码:

function user_exists($username) {
  $username = sanitize($username); 
  return (mysql_result(mysql_query("SELECT * FROM `users` WHERE `username` = '$username' "),0) ==1) ? true : false; 
}

mysql_*已被弃用,请改用mysqli_u*或PDO。另一方面,我认为OWASP不鼓励告知是否存在用户名,而是建议使用模糊的用户名或不正确的密码。您可以删除用户_exists函数,保存数据库查询并提高安全性。@jeni数据库MD5中的密码是否正确加密?否则你会得到一个解析错误吗?所以我以前真的没有php方面的知识。。这是为了练习,因为我听说你应该把书和其他东西拧进去,然后直接跳进去。。。尽管如此。。你们说的几乎每一句话我都听不懂但是@HamZaDzCyberDev-是的,我相信密码加密正确。至少它们在我的phpmyadmin表中被加密。@arxanas。。为什么他们会告诉我使用不推荐的代码?:/如果我删除这个函数。。它是否仍然会被破坏,但我不会得到消息?mysql_*已被弃用,请改用mysqli_u*或PDO。另一方面,我认为OWASP不鼓励告诉是否存在用户名,而是建议使用模糊的用户名或密码不正确。您可以删除用户_exists函数,保存数据库查询并提高安全性。@jeni数据库MD5中的密码是否正确加密?否则你会得到一个解析错误吗?所以我以前真的没有php方面的知识。。这是为了练习,因为我听说你应该把书和其他东西拧进去,然后直接跳进去。。。尽管如此。。你们说的几乎每一句话我都听不懂但是@HamZaDzCyberDev-是的,我相信密码加密正确。至少它们在我的phpmyadmin表中被加密。@arxanas。。为什么他们会告诉我使用不推荐的代码?:/如果我删除这个函数。。它会不会还是坏了,但我就是不会收到消息?是的,我根本无法登录。我真的不知道该怎么做你的建议。。可能不是,但听起来很复杂。不过我还是要试一下那样的东西。嗯,我根本无法登录。我真的不知道该怎么做你的建议。。可能不是,但听起来很复杂。不过我还是要试一下那样的东西。谢谢
function user_exists($username) {
  $username = sanitize($username); 
  return (mysql_result(mysql_query("SELECT * FROM `users` WHERE `username` = '$username' "),0) ==1) ? true : false; 
}