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 username = :username」を使用しようとしたところ、ID が返されましたが、パスワード部分を追加するか、パスワード チェックのみを追加すると、null が返されます。ご覧のとおり var_dump で確認しましたが、ダンプしているパスワードは正しく、データベースに存在します。パスワードは独自の暗号化システムでハッシュされ、あらゆる種類の文字が返されます。この特定のパスワードは、「®Ç+¥J:àhMaÕú¡HW」でした。

とにかくパスワードチェックでIDを取得する方法があるのか​​ 、それとも英数字を返すようにハッシャーを編集する必要があるのか​​ 疑問に思っていましたか?

4

1 に答える 1

0

とにかくパスワードチェックでIDを取得する必要がある場合

はい。

英数字を返すようにハッシャーを編集する必要がありますか?

番号。

可能な特定の文字の唯一の問題は、それらのエンコーディングです。

パスワードフィールドを作成するか[var]binary()、その照合を行いますutf8_bin

于 2013-08-21T14:54:18.273 に答える