初心者です。
実際のパスワードとハッシュ化したものをpassword_verifyでtrueにしてログインを進めたいのですがfalseで返ってきます。
原因が分からない為、教えて頂ければ幸いです。
php
1 if(empty($err_msg)){ 2 debug('バリデーションokです'); 3 4 5 try{ 6 7 $dbh = dbConnect(); 8 $sql = 'SELECT pass,id FROM users WHERE email = :email'; 9 $data = array(':email' => $email); 10 $stmt = queryPost($dbh,$sql,$data); 11 $result = $stmt->fetch(PDO::FETCH_ASSOC); 12 13 debug('クエリ結果の中身:'.print_r($result,true)); 14 15 var_dump($pass); 16 var_dump(array_shift($result)); 17 18 if(!empty($result) && password_verify($pass,array_shift($result))){ 19 debug('パスワードが一致しました'); 20 21 }catch(Exception $e){ 22 error_log('エラーが発生しました:'.$e->getMessage()); 23 $error_msg['error'] = Error07; 24 } 25 }
確認した事
php_logファイルでarrayの[pass]の中身がハッシュ化したものがある。
上記のコードでvar_dumpで($pass)と(array_shift($result))の中身を確認。
DBのpassはvarchar(255)で指定済み。
仕様
Mac