teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2016/07/01 06:55

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -5,4 +5,18 @@
5
5
  $email,
6
6
  password_hash($password,PASSWORD_DEFAULT)
7
7
  ]);
8
+ ```
9
+
10
+ ###追記
11
+ password_hashの使い方が誤っているとの指摘を受けたので修正。
12
+ そもそもDB上でパスワードが合っているかを確認できないので、DBに保存されたハッシュ値を受け取って、そのあと生のパスワードデータとハッシュ値を使ってpassword_verifyすればいいんではないでしょうか。
13
+ ```PHP
14
+ $sql = "SELECT * FROM user_data WHERE email = ?";
15
+ $stmt = $pdo->prepare($sql);
16
+ $stmt->execute([
17
+ $email
18
+ ]);
19
+ if(password_verify($password, $stmt["password"])) {
20
+ // OK
21
+ }
8
22
  ```

1

修正

2016/07/01 06:55

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -1,4 +1,4 @@
1
- そもそもDBに保存されている値はパスワードの生データではなくハッシュではないですか?ハッシュが保存されているなら、executeに渡すべき値はこうなるかと思いますが…
1
+ ハッシュが保存されているなら、executeに渡すべき値はこうなるかと思いますが…
2
2
 
3
3
  ```PHP
4
4
  $stmt->execute([