2013-08-21 99 views
0
$query = $db->prepare("SELECT id FROM users WHERE username = :username AND password = :password"); 
$query->bindValue(":username", $lName); 
$query->bindValue(":password", imu($lPass)); 
var_dump(imu($lPass)); 
try { 
    $query->execute(); 
    $result = $query->fetchAll(PDO::FETCH_ASSOC); 
} catch (PDOException $e) { 
    die($e->getMessage()); 
} 

我想選擇用戶ID,具體取決於他們是否輸入了有效的登錄名。我試圖只使用「WHERE用戶名=:用戶名」,它的工作原理,它返回的ID,但是當我添加密碼部分,或只有密碼檢查,它會返回null。如您所見,我檢查了var_dump,並且它正在轉儲的密碼是正確的,它存在於數據庫中。密碼與我自己的加密系統進行哈希處理,並返回各種字符。這個特定的密碼是:「®+¥J:àhMaÕú¡HW」。MYSQL數據庫中的其他字符?

我想知道是否有密碼檢查是否有id或我必須編輯我的hash'er所以它返回字母數字字符?

+0

什麼是你的表和客戶端編碼? –

回答

0

是否有無論如何要獲得密碼的ID檢查

肯定。

我必須編輯我的hash'er才能返回字母數字字符嗎?

沒有。

某些字符的唯一問題是它們的編碼。

讓您的密碼字段要麼[var]binary()或使其整理utf8_bin

+0

好吧,我將整個數據庫的排序規則設置爲utf8_bin,它仍然不起作用? – user1768788

+0

將整個數據庫的排序規則設置爲utf8_bin將是一個糟糕的主意。您必須將此排序規則設置爲密碼字段 –

+0

我這樣做,仍然不起作用... – user1768788