2013-08-21 2 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()); 
} 

Я пытаюсь выбрать идентификатор пользователя, в зависимости от того, вошли ли они в действующий логин. Я пытался просто использовать «WHERE username =: username», и это работает, он возвращает идентификатор, но когда я добавляю часть пароля или только проверку пароля, он возвращает null. Я проверил с var_dump, как вы можете видеть, и пароль, который он сбрасывает, является правильным, он существует в базе данных. Пароль hashed с моей собственной системой шифрования и возвращает все виды символов. Этот конкретный пароль был: «®Ç + ¥ J: àhMaÕúHH».Другие символы в базе данных MYSQL?

Мне было интересно, есть ли в любом случае, чтобы получить идентификатор с проверкой пароля или мне нужно изменить мой хэш, чтобы он возвращал буквенно-цифровые символы?

+0

что ваши таблицы и кодирование клиента? –

ответ

0

, если есть в любом случае, чтобы получить идентификатор с паролем проверки

да.

Должен ли я редактировать свой хэш, чтобы он возвращал буквенно-цифровые символы?

no.

Единственная проблема с определенными символами, которые могут быть, это их кодирование.

Сделайте поле пароля либо [var]binary() или сделать его сверка utf8_bin

+0

Хорошо, я установил сортировку всей базы данных в utf8_bin, она по-прежнему не работает? – user1768788

+0

установка всей базы данных в utf8_bin была бы ужасной идеей. вы должны установить это сопоставление только в поле пароля –

+0

Я сделал это, все еще не работает ... – user1768788

Смежные вопросы