用户名/密码组合PHP MySQL的登录/注册错误

用户名/密码组合PHP MySQL的登录/注册错误,php,mysql,Php,Mysql,我正在按照phpacademy的教程登录和注册。 我跟随Youtube上的脚本。在第三部分,直到函数的最后一部分,一切都进展顺利。如果我输入的用户名和密码也在te数据库中,我会得到消息:Array[0]=>该用户名/密码 谁能告诉我我做错了什么吗? 这是迄今为止我的登录部分: <?php include 'core/init.php'; if (empty($_POST) === false) { $username = $_POST['username'];

我正在按照phpacademy的教程登录和注册。 我跟随Youtube上的脚本。在第三部分,直到函数的最后一部分,一切都进展顺利。如果我输入的用户名和密码也在te数据库中,我会得到消息:Array[0]=>该用户名/密码

谁能告诉我我做错了什么吗? 这是迄今为止我的登录部分:

<?php 
include 'core/init.php';



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

    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password'; 
    } else if (user_exists($username) === false) {
        $errors[] = 'We can\'t find that username. Have you registered?';
    } else if (user_active($username) === false) {
        $errors[] = 'You haven\'t activated your account!';
    } else {
        $login = login($username, $password);
        if ($login === false) {
        $errors[] = 'That username/password combination is incorrect';

    } else {
        echo 'ok!';

}
}
}
?>
这是我的用户部分,我认为最后一部分出了问题

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

function email_exists($email) {
    $email = sanitize($email);
    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `email` = '$email'"), 0) == 1) ? true : false;
}

function user_active($username) {
    $username = sanitize($username);
    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `active` = 1"), 0) == 1) ? true : false;
}

function user_id_from_username($username) {
    $username = sanitize($username);
    return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
}

function user_id_from_email($email) {
    $email = sanitize($email);
    return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `email` = '$email'"), 0, 'user_id');
}

function login($username, $password) {
    $user_id = user_id_from_username($username);

    $username = sanitize($username);
    $password = md5($password);

    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) == 1) ? $user_id : false;
}
?>
希望有人能帮助我


提前感谢

您确定该用户的密码在存储之前已用MD5哈希处理过吗?请接受一个好建议:关闭浏览器中任何phpacademy的此站点选项卡,永远不要再次导航到它,请告诉先生我的代码出了什么问题?这里的问题不属于主题。我不是专家,但我觉得你的问题是错误的。例如从用户名为“$username”的用户中选择COUNTuser_id,在此查询中,$username与连接。到字符串。对我来说应该是这样的:从username='的用户中选择COUNTuser_id。$username'@riggsfully:我是在数据库中设置测试帐户时做的。