尝试为myBB论坛创建登录脚本

时间:2014-02-19 00:36:38

标签: php sql database

我试图创建一个登录脚本来连接我的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");
        }
}

http://pastebin.com/KU130cZE

1 个答案:

答案 0 :(得分:0)

在第8行,您正在呼叫$db->escape_string(my_strtolower($username));。问题是:$db尚未定义,或者不是对象。

我无法告诉你它是什么,因为它是一个全局变量(坏事,应该避免那些!),所以我无法分辨它的设置和它有什么价值 - 但它显然不是一个对象,所以我的最好的选择是取消设置/ nullfalse,因为应该设置它的某个函数有错误并返回false