我试图创建一个登录脚本来连接我的myBB论坛数据库并回显true或false,无论用户名和密码是否正确,但我一直收到此错误:
致命错误:在第76行的/home2/tronic/public_html/forum/inc/tronic_login.php中调用非对象的成员函数escape_string()
function validate_password_from_username()
{
$username = $_GET['username'];
$password = $_GET['password'];
global $db, $mybb;
$username = $db->escape_string(my_strtolower($username));
switch($mybb->settings['username_method'])
{
case 0:
$query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='".$username."'", array('limit' => 1));
break;
case 1:
$query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(email)='".$username."'", array('limit' => 1));
break;
case 2:
$query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='".$username."' OR LOWER(email)='".$username."'", array('limit' => 1));
break;
default:
$query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='".$username."'", array('limit' => 1));
break;
}
$user = $db->fetch_array($query);
if(!$user['uid'])
{
echo("false");
}
else
{
echo("true");
}
}
答案 0 :(得分:0)
在第8行,您正在呼叫$db->escape_string(my_strtolower($username));
。问题是:$db
尚未定义,或者不是对象。
我无法告诉你它是什么,因为它是一个全局变量(坏事,应该避免那些!),所以我无法分辨它的设置和它有什么价值 - 但它显然不是一个对象,所以我的最好的选择是取消设置/ null
或false
,因为应该设置它的某个函数有错误并返回false
。