我遇到问题:
function do_login() {
global $db;
$username = $_POST['username'];
$password = md5($_POST['password']);
$row = $db->query("SELECT username, password FROM users WHERE username = '$username' AND password = '$password'");
while ($rows = mysql_fetch_array($row)) {
if($username == $rows['username'] && $password == $rows['password']) {
$_SESSION['Logedin'] = true;
echo 'yah';
}else{
echo 'Neh';
};
}
}
因为它给了我这个错误:致命错误: 在第79行的C:\ xampp \ htdocs \ falco \ admin \ class \ auth.php中的非对象上调用成员函数query()
我不知道我错过了什么! 谢谢你的帮助
答案 0 :(得分:1)
$db
可能未初始化。在上一行中发出var_dump($db);
以查看其中包含的内容。
此外,您的代码在sql注入时完全开放...在查询中使用其中的任何内容之前清理$_GET
/ $_POST
。试试这个用户名,例如:
$_POST['username'] = "admin' OR 1 = 1 OR username='"
答案 1 :(得分:0)
我的猜测(这只是一个猜测)是当你正在呼叫连接到数据库时,你得到的是错误代码或错误的代替数据库对象。而且你没有检查这个条件,后来就像普通变量一样使用它。当然,还有int或false或者没有查询方法的任何东西。
这只是猜测。