password_verifyがうまくできません
不思議なことが起こります。
password_hash()で生成したパスワードをデータベースに保存しています。
それを取り出し、password_verifyでマッチするか否かを調べているのですが、
データベースから取り出したものだとマッチせず、
それをprintで出したものをコピー&ペーストで変数にいれたものはマッチします。
うまく説明できず、申し訳ないのですが……
$id = 66;
require_once 'dbmanager.php';
$pdo = getDb();
$sql = "select password from members where id = $id";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$hash = $row['password'];
// print $hash; すると、「$2y$09$poBgU6PYziypG6dBtvDiYuG.9kPdTHVkTymLxo2RiCnC3NG.67ZhC」と表示されます。
そして、
$hash = $row['password'];
とすると、マッチせず、
$hash = '$2y$09$poBgU6PYziypG6dBtvDiYuG.9kPdTHVkTymLxo2RiCnC3NG.67ZhC';
とすると、マッチします。
if (password_verify('****', $hash)){
echo 'あっている';
} else {
echo '間違っている';
}
どうしたら、データベースから取り出した値で直にマッチさせることができるのでしょうか。
もの凄く基礎的なところで間違っているのでしょうか。
宜しくお願いします。
お礼
ありがとうございます。紹介HPでオートコンプリート設定しました