2014-02-19 50 views
0

我试着去创建一个登录脚本来与我的MyBB论坛的数据库连接和呼应真或假的用户名和密码是否正确,但我不断收到此错误登录脚本:试图创建的MyBB论坛

致命错误:调用一个成员函数escape_string()一个非对象在/home2/tronic/public_html/forum/inc/tronic_login.php上线76

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

您的数据库连接失败。 – Daedalus

回答

0

在第8行,则打电话给$db->escape_string(my_strtolower($username));。问题是:$db尚未定义,或者不是对象。

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