2012-03-07 22 views
1

這是我在數據庫功能爲什麼IAM越來越撥錯的用戶名和pwd正確的事情在PHP

function CheckLoginInDB($username,$password) 
{ 
    if(!$this->DBLogin()) 
    { 
     $this->HandleError("Database login failed!"); 
     return false; 
    }   
    $username = $this->SanitizeForSQL($username); 
    $pwdmd5 = md5($password); 
    $qry = "Select name, email from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'"; 

    $result = mysql_query($qry,$this->connection); 

    if(!$result || mysql_num_rows($result) <= 0) 
    { 
     $this->HandleError("Error logging in. The username or password does not match"); 
     return false; 
    } 

    $row = mysql_fetch_assoc($result); 


    $_SESSION['name_of_user'] = $row['name']; 
    $_SESSION['email_of_user'] = $row['email']; 
    $_SESSION['user_name']=$row['username']; 

    return true; 
} 

checklogin ..................... .................................................. ................ 這就是所謂的login.php中作爲

if($fgmembersite->Login()) 

,如果這回不是用戶真正將被引導到登錄頁面成功。 但我不是爲什麼它總是返回false!並顯示錯誤「錯誤登錄。用戶名或密碼不匹配」...

請幫助。

回答

1

編輯:我也注意到,在你的代碼中,你調用一種方法,然而,你向我們展示了一個不同的方法......我認爲這是不對的。

嘗試增加or die(mysql_error())您行:

$result = mysql_query($qry,$this->connection); 

要成爲:

$result = mysql_query($qry,$this->connection) or die(mysql_error()); 

我的猜測是您的查詢失敗。

1

由於這種情況下,如果您的查詢失敗,因爲語法錯誤的,你仍然會得到消息「在錯誤日誌記錄」,這是假的失敗的查詢:

if(!$result || mysql_num_rows($result) <= 0) 

更改爲:

if (!$result) { 
    echo mysql_error(); 
} 
else if (mysql_num_rows($result) <= 0) { 
    // error logging in, non-matching user/pass 
} 
相關問題