質問編集履歴

1

回答を参考にコードを書き変えてみましたが、まだパスワードが一致しません。

2019/12/01 02:22

投稿

vanillaparf
vanillaparf

スコア5

test CHANGED
File without changes
test CHANGED
@@ -54,27 +54,9 @@
54
54
 
55
55
  $sql = 'SELECT password FROM sample WHERE id=?';
56
56
 
57
- $stmt =$dbh->prepare($sql);
57
+ $data[] = $user_id;
58
-
59
- $result = $stmt->fetch(PDO::FETCH_ASSOC);
60
-
61
- $user_pass = password_verify($user_pass, $result)
62
-
63
-
64
-
65
- $sql ='SELECT username, password FROM sample WHERE id=? AND password=?';
66
58
 
67
59
  $stmt = $dbh->prepare($sql);
68
-
69
- $data[] = $user_id;
70
-
71
- $data[] = $user_pass;
72
-
73
- $stmt->execute($data);
74
-
75
-
76
-
77
- $dbh = null;
78
60
 
79
61
 
80
62
 
@@ -82,13 +64,13 @@
82
64
 
83
65
 
84
66
 
85
- if($rec == false){
67
+ if(!empty($rec) && password_verify($user_pass, array_shift($rec))){
86
68
 
87
- print 'ユーザーIDまたはパスワードが間違っています。<br/>';
69
+ ユーザーIDパスワードが一致しています。<br/>;
88
70
 
89
71
  }else{
90
72
 
91
- print 'ユーザーIDパスワードが一致しています。<br/>';
73
+ print 'ユーザーIDまたはパスワードが間違っています。<br/>';
92
74
 
93
75
  exit();
94
76