回答編集履歴

2

追記

2016/07/01 06:55

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -13,3 +13,31 @@
13
13
  ]);
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ ###追記
20
+
21
+ password_hashの使い方が誤っているとの指摘を受けたので修正。
22
+
23
+ そもそもDB上でパスワードが合っているかを確認できないので、DBに保存されたハッシュ値を受け取って、そのあと生のパスワードデータとハッシュ値を使ってpassword_verifyすればいいんではないでしょうか。
24
+
25
+ ```PHP
26
+
27
+ $sql = "SELECT * FROM user_data WHERE email = ?";
28
+
29
+ $stmt = $pdo->prepare($sql);
30
+
31
+ $stmt->execute([
32
+
33
+ $email
34
+
35
+ ]);
36
+
37
+ if(password_verify($password, $stmt["password"])) {
38
+
39
+ // OK
40
+
41
+ }
42
+
43
+ ```

1

修正

2016/07/01 06:55

投稿

masaya_ohashi
masaya_ohashi

スコア9206

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