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