【发布时间】:2013-12-06 20:58:16
【问题描述】:
数据库信息正确且有效,我已对此进行了多次测试。数据库与我试图从中提取数据的表一起存在。我在数据库中有虚拟信息,这是我的代码来检查数据库中的用户是否为“网络”,表“用户”:
<?php
require '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[] = 'Username does not exists. Have you registered?';
} else if (user_active($username) === false) {
$errors[] = 'Your account is not activated. Please check your email!';
} else {
}
print_r($errors);
}
?>
这里是函数'user_exists($username)'的代码
<?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 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;
}
?>
消毒功能:
<?php
function sanitize($data) {
return mysqli_real_escape_string($data);
}
?>
这是我的问题:
当我使用虚拟信息登录时 - 用户名;密码(通过 phpmyadmin 散列的 md5)如果显示错误:
'用户名不存在。你注册了吗?'
我尝试过使用不同的数据库、不同的用户.. 没有任何效果.. 帮助!
【问题讨论】:
-
用反引号`替换列名和表名中的单引号。也看看这个链接:dev.mysql.com/doc/refman/5.5/en/reserved-words.html
-
@vinodadhikary 没有什么不同。
-
结合下面的两个答案:) 编辑:有人删除了第二个。
-
@Aragon0 我做了,我仍然得到用户不存在。
-
给我们 MySQL 错误:“echo mysql_error();”在 user_exists 调用之后。