質問編集履歴

8

文章を修正

2022/02/09 07:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,9 @@
1
1
  提示コードですが参考サイトと同じようにコードを真似たのですが以下の警告文が表示されて上手く値を取得できません。どうやってデーターベースの一致している値を取得するのでしょうか?
2
2
 
3
3
  ```
4
- Warning: Trying to access array offset on value of type bool in /opt/lampp/htdocs/sample/loginCheck.php on line 38
4
+ Warning: Undefined array key "password" in /opt/lampp/htdocs/sample/loginCheck.php on line 35
5
5
 
6
- Deprecated: password_verify(): Passing null to parameter #2 ($hash) of type string is deprecated in /opt/lampp/htdocs/sample/loginCheck.php on line 38
6
+ Deprecated: password_verify(): Passing null to parameter #2 ($hash) of type string is deprecated in /opt/lampp/htdocs/sample/loginCheck.php on line 35
7
7
  ```
8
8
 
9
9
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/b3cf5b82-7b0e-4f42-adcd-f9915181b3d5.png)
@@ -38,18 +38,15 @@
38
38
  $dsn = 'mysql:dbname=Bulletin_Board;host=localhost;charset=utf8';
39
39
  $dbh = new PDO($dsn,"root","");
40
40
  $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
41
- $sql = 'SELECT name FROM Account WHERE ID=? AND password=?';
41
+ $sql = 'SELECT name FROM Account WHERE ID = :id;';
42
42
  $stmt = $dbh->prepare($sql);
43
- $stmt->bindParam(':ID', $_POST['id']);
43
+ $stmt->bindParam(':id', $_POST['id']);
44
- $data[] = $id;
45
- $data[] = $password;
44
+ //$stmt->bindParam(':password', $password);
46
- $stmt->execute($data);
45
+ $stmt->execute();
47
-
48
46
 
49
47
 
50
48
  $result = $stmt->fetch();
51
-
52
- if(password_verify($_POST['password'],$result['password']) == true)
49
+ if(password_verify($_POST["password"],$result['password']) == true)
53
50
  {
54
51
  echo true;
55
52
  }
@@ -66,6 +63,11 @@
66
63
  die($e->getMessage());
67
64
  }
68
65
  ?>
66
+
67
+
68
+
69
+
70
+
69
71
  </body>
70
72
 
71
73
  </html>

7

文章を修正

2022/02/09 06:35

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- php password_hash()関数使ったハッシュ値同士を比較する方法が知りたい。
1
+ php パズワードが一致しているかどうかの判定する方法が知りたい。
test CHANGED
@@ -1,15 +1,17 @@
1
- 提示コードですが登録ソースファルがアカウンの登録画面でその登録した情報をログイン確認ソスファイルで参照して一致するものがあるかどうかチェックしのですが際に`password_verify()`関数使って入力したもを抽出したものが一致しているかどうか確認したいのですが値の取り出方法がわりません。
1
+ 提示コードですが参考サイトと同じようにコ真似たのですが以下警告文が表示されて上手く値取得できません。どうやってデーターベースの一致している取得するのでしょう
2
2
 
3
- 参考サイト: https://qiita.com/wakahara3/items/792943c1e0ed7a87e1ef
3
+ ```
4
- password_hash: https://www.php.net/manual/ja/function.password-hash.php
5
- password_verify: https://www.php.net/manual/ja/function.password-verify.php
6
- $dbh->prepare($sql)の戻り値: https://www.javadrive.jp/php/pdo/index8.html
4
+ Warning: Trying to access array offset on value of type bool in /opt/lampp/htdocs/sample/loginCheck.php on line 38
7
- 戻り値の型: https://www.php.net/manual/ja/class.pdostatement.php
8
5
 
9
- 参考書籍: https://www.amazon.co.jp/%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFPHP-%E6%94%B9%E8%A8%82%E7%89%88-%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8C%E3%82%8B%E4%BA%BA%E3%81%AB%E3%81%AA%E3%82%8B-%E8%B0%B7%E8%97%A4-%E8%B3%A2%E4%B8%80/dp/4865940650/ref=sr_1_1?crid=10933QO8OYKJZ&keywords=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFphp+%E6%94%B9%E8%A8%82%E7%89%88&qid=1644381263&sprefix=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BF%2Caps%2C174&sr=8-1
10
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/8e165ba8-9882-4b7f-afe0-7ede9f01951e.png)
11
- #####ログイン確認
12
- ```php
6
+ Deprecated: password_verify(): Passing null to parameter #2 ($hash) of type string is deprecated in /opt/lampp/htdocs/sample/loginCheck.php on line 38
7
+ ```
8
+
9
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/b3cf5b82-7b0e-4f42-adcd-f9915181b3d5.png)
10
+
11
+ 参考サイト: https://qiita.com/MasaKu_n/items/51552aa0331f3ae90dae
12
+
13
+
14
+ ```
13
15
  <!DOCTYPE html>
14
16
  <html lang=ja>
15
17
  <head>
@@ -38,6 +40,7 @@
38
40
  $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
39
41
  $sql = 'SELECT name FROM Account WHERE ID=? AND password=?';
40
42
  $stmt = $dbh->prepare($sql);
43
+ $stmt->bindParam(':ID', $_POST['id']);
41
44
  $data[] = $id;
42
45
  $data[] = $password;
43
46
  $stmt->execute($data);
@@ -63,16 +66,8 @@
63
66
  die($e->getMessage());
64
67
  }
65
68
  ?>
66
-
67
-
68
-
69
-
70
-
71
69
  </body>
72
70
 
73
71
  </html>
74
72
 
75
73
  ```
76
-
77
-
78
-

6

提示コードを修正

2022/02/09 06:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -41,16 +41,20 @@
41
41
  $data[] = $id;
42
42
  $data[] = $password;
43
43
  $stmt->execute($data);
44
+
44
45
 
46
+
45
- if($stmt->fetch(PDO::FETCH_ASSOC) == false)
47
+ $result = $stmt->fetch();
48
+
49
+ if(password_verify($_POST['password'],$result['password']) == true)
46
50
  {
47
- echo "false";
51
+ echo true;
48
52
  }
49
53
  else
50
54
  {
51
- echo "true";
55
+ echo false;
52
56
  }
53
-
57
+
54
58
 
55
59
 
56
60
  }
@@ -70,62 +74,5 @@
70
74
 
71
75
  ```
72
76
 
73
- ##### 登録
74
- ```php
75
- <!DOCTYPE html>
76
- <html lang=ja>
77
- <head>
78
- <meta charset="utf-8">
79
-
80
- <link rel="stylesheet" href="style.css">
81
- <title>send</title>
82
- </head>
83
-
84
- <body>
85
-
86
- <?php
87
- ini_set("display_errors",1);
88
- error_reporting(E_ALL);
89
- ?>
90
-
91
- <h1 class="center"> 登録確認 </h1>
92
-
93
- <?php
94
77
 
95
78
 
96
- $name = $_POST["userName"];
97
- $id = $_POST["id"];
98
- $mail = $_POST["mail"];
99
- $password1 = password_hash($_POST["1password"],PASSWORD_DEFAULT);
100
- $password2 = password_hash($_POST["2password"],PASSWORD_DEFAULT);
101
-
102
-
103
-
104
- try
105
- {
106
- $dsn = 'mysql:dbname=Bulletin_Board;host=localhost;charset=utf8';
107
- $dbh = new PDO($dsn,"root","");
108
-
109
- $sql = 'INSERT INTO `Account`(`name`,`ID`,`password`,`mail`) VALUES (?,?,?,?)';
110
- $stmt = $dbh->prepare($sql);
111
- $data[] = $name;
112
- $data[] = $id;
113
- $data[] = $password1;
114
- $data[] = $mail;
115
-
116
- $stmt->execute($data);
117
-
118
- }
119
- catch(PDOException $e)
120
- {
121
- die($e->getMessage());
122
- }
123
-
124
- ?>
125
- </body>
126
-
127
- </html>
128
- ```
129
-
130
-
131
-

5

文章を修正

2022/02/09 05:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,6 @@
1
1
  提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしたいのですがその際に`password_verify()`関数を使って入力したものを抽出したものが一致しているかどうかを確認したいのですが値の取り出し方法がわかりません。
2
2
 
3
+ 参考サイト: https://qiita.com/wakahara3/items/792943c1e0ed7a87e1ef
3
4
  password_hash: https://www.php.net/manual/ja/function.password-hash.php
4
5
  password_verify: https://www.php.net/manual/ja/function.password-verify.php
5
6
  $dbh->prepare($sql)の戻り値: https://www.javadrive.jp/php/pdo/index8.html

4

文章を修正

2022/02/09 05:00

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- php $dbh->prepare($sql);の戻りの値出したい
1
+ php password_hash()関数を使ったハッシュ同士比較する方法が知りたい
test CHANGED
@@ -1,4 +1,4 @@
1
- 提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしのですがその戻り値の値を取り出して`password_verify()`関数を使って入力したものを抽出したものが一致しているかどうかを確認したいのですが取り出し方法がわかりません。
1
+ 提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしいのですがその際に`password_verify()`関数を使って入力したものを抽出したものが一致しているかどうかを確認したいのですが値の取り出し方法がわかりません。
2
2
 
3
3
  password_hash: https://www.php.net/manual/ja/function.password-hash.php
4
4
  password_verify: https://www.php.net/manual/ja/function.password-verify.php

3

質問内容を修正

2022/02/09 04:57

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- php ログインフォーム実装でIDとパスワードをデーターベースと同じものを入れても一致するものが見つからない原因が知りたい
1
+ php $dbh->prepare($sql);戻り値出したい
test CHANGED
@@ -1,7 +1,9 @@
1
- 提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしているのですがecho false が表示されてしいます。またデーターベースではしっかが入っていること確認ました。またパスワードを暗号化としてpassword_hash()を使っていま
1
+ 提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしているのですがその戻り値の値取り出して`password_verify()`関数を使って入力したものを抽出したものが一致してるかどうかを確認したいのですが取り出し方法がわかりせん
2
-
3
2
 
4
3
  password_hash: https://www.php.net/manual/ja/function.password-hash.php
4
+ password_verify: https://www.php.net/manual/ja/function.password-verify.php
5
+ $dbh->prepare($sql)の戻り値: https://www.javadrive.jp/php/pdo/index8.html
6
+ 戻り値の型: https://www.php.net/manual/ja/class.pdostatement.php
5
7
 
6
8
  参考書籍: https://www.amazon.co.jp/%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFPHP-%E6%94%B9%E8%A8%82%E7%89%88-%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8C%E3%82%8B%E4%BA%BA%E3%81%AB%E3%81%AA%E3%82%8B-%E8%B0%B7%E8%97%A4-%E8%B3%A2%E4%B8%80/dp/4865940650/ref=sr_1_1?crid=10933QO8OYKJZ&keywords=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFphp+%E6%94%B9%E8%A8%82%E7%89%88&qid=1644381263&sprefix=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BF%2Caps%2C174&sr=8-1
7
9
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/8e165ba8-9882-4b7f-afe0-7ede9f01951e.png)

2

参考サイトを追加

2022/02/09 04:36

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,7 @@
1
1
  提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしているのですがecho false が表示されてしいます。またデーターベースではしっかりと値が入っていることを確認しました。またパスワードを暗号化としてpassword_hash()を使っています。
2
+
3
+
4
+ password_hash: https://www.php.net/manual/ja/function.password-hash.php
2
5
 
3
6
  参考書籍: https://www.amazon.co.jp/%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFPHP-%E6%94%B9%E8%A8%82%E7%89%88-%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8C%E3%82%8B%E4%BA%BA%E3%81%AB%E3%81%AA%E3%82%8B-%E8%B0%B7%E8%97%A4-%E8%B3%A2%E4%B8%80/dp/4865940650/ref=sr_1_1?crid=10933QO8OYKJZ&keywords=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFphp+%E6%94%B9%E8%A8%82%E7%89%88&qid=1644381263&sprefix=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BF%2Caps%2C174&sr=8-1
4
7
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/8e165ba8-9882-4b7f-afe0-7ede9f01951e.png)

1

文章を修正

2022/02/09 04:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
1
  提示コードですが登録ソースファイルがアカウントの登録画面でその登録した情報をログイン確認ソースファイルで参照して一致するものがあるかどうかをチェックしているのですがecho false が表示されてしいます。またデーターベースではしっかりと値が入っていることを確認しました。またパスワードを暗号化としてpassword_hash()を使っています。
2
+
3
+ 参考書籍: https://www.amazon.co.jp/%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFPHP-%E6%94%B9%E8%A8%82%E7%89%88-%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8C%E3%82%8B%E4%BA%BA%E3%81%AB%E3%81%AA%E3%82%8B-%E8%B0%B7%E8%97%A4-%E8%B3%A2%E4%B8%80/dp/4865940650/ref=sr_1_1?crid=10933QO8OYKJZ&keywords=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BFphp+%E6%94%B9%E8%A8%82%E7%89%88&qid=1644381263&sprefix=%E6%B0%97%E3%81%A5%E3%81%91%E3%81%B0%E3%83%97%E3%83%AD%E4%B8%A6%E3%81%BF%2Caps%2C174&sr=8-1
2
4
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-09/8e165ba8-9882-4b7f-afe0-7ede9f01951e.png)
3
5
  #####ログイン確認
4
6
  ```php