2013-05-20 28 views
1

您好我有一個類登錄從外部腳本檢查MYBB的用戶名和密碼它似乎工作,但有小問題。對於不同的用戶,結果會爲所有用戶(mybb_users表中的第一個uid和電子郵件)返回相同的uid和電子郵件。請教如何解決這個問題。謝謝你的幫助。返回mybb中的所有用戶的相同的uid和電子郵件

class Login 
{ 
    function CheckLogin($username, $password) 
    {   

$MySQL_Host = "localhost"; 
$MySQL_User = "root"; 
$MySQL_Pass = ""; 
$MySQL_DB = ""; 
$tbl_name = ""; 

    // Connect to server and select databse. 
    mysql_connect("$MySQL_Host", "$MySQL_User", "$MySQL_Pass") or die(mysql_error()); 
    // echo "Connected to MySQL<br />"; 
    mysql_select_db("$MySQL_DB") or die(mysql_error()); 
    // echo "Connected to Database<br />"; 

     $sql="SELECT * FROM $tbl_name WHERE username='$username'"; 
     $result=mysql_query($sql);   

     if($result == false) 
      return false; 
//    fwrite($fh, $result); 
//    fclose($fh); 


     $count=mysql_num_rows($result); 
     // If result matched $username and $password, table row must be 1 row 
     if($count==1){ 
      $row = mysql_fetch_assoc($result); 
      global $mybb; 
      if (md5(md5($row['salt']).md5($password)) == $row['password']){ 
      return array('uid' => $mybb->user['uid'] , 
          'mail' => $mybb->user[ 'email' ], 
          'user' => $username 
         ); 
      } 
     } 
    } 
} 
+0

是否每個用戶的用戶名都不相同。你檢查過數據庫嗎? SELECT count(*)FROM tbl_name WHERE username ='username';在數據庫中試試這個查詢,並告訴我你輸出的結果是.. – TomPHP

+0

是不同的用戶名,現在用$ sql =「SELECT count(*)FROM tbl_name WHERE username ='$ username'」;我有不正確的用戶名和/或密碼?! – user1973003

+0

您是使用PHP運行查詢還是僅使用數據庫?它應該在數據庫中完成..並告訴我你的計數數量.. – TomPHP

回答

2

更改您的腳本,如下所示,並嘗試它。

return array('uid' => $row['uid'] , 
       'mail' => $row['email'], 
       'user' => $username 
      ); 

我認爲這將起作用。

+1

@ user1973003試試這個代碼..讓我知道結果。 – TomPHP

+1

謝謝你的魅力。 – user1973003

+0

不錯!我很高興它的工作! – TomPHP

相關問題