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

質問編集履歴

3

該当のソースコード にログインフォームのコードを追加しました

2021/02/14 05:36

投稿

forestGreen
forestGreen

スコア8

title CHANGED
File without changes
body CHANGED
@@ -192,6 +192,79 @@
192
192
  ?>
193
193
 
194
194
  ```
195
+ ログインフォーム(login.php)
196
+ ```PHP
197
+ <!DOCTYPE html>
198
+ <html lang="ja">
199
+ <head>
200
+ <meta charset="UTF-8">
201
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
202
+ <link rel="stylesheet" type="text/css" href="login.css?v=5">
203
+ <link rel="icon" href="images/wordcard.png">
204
+ <title>Hello!Words ログイン</title>
205
+ </head>
206
+ <body>
207
+ <div id="container">
208
+ <h2>Hello! Words ログイン画面</h2>
209
+ <p>ログイン情報を入力してください</p>
210
+ <!-- action属性で情報の送り先となるページ(Logincheck.php)を指定 -->
211
+ <form action="Logincheck.php" method="post">
212
+ <table>
213
+ <tr>
214
+ <th>ユーザー名</th>
215
+ <td><input type="text" name="user_name"></td>
216
+ </tr>
217
+ <tr>
218
+ <th>パスワード</th>
219
+ <td><input type="password" name="user_password"></td>
220
+ </tr>
221
+ </table>
222
+ <input class="buttons" type="submit" href="main.php" value="ログイン">
223
+ </form>
224
+ <a href="top.php">トップへ戻る</a>
225
+ </div>
226
+ </body>
227
+ </html>
228
+ ```
229
+ ユーザー名またはパスワードが一致せずログインできなかった場合に表示するページ(login2.php)
230
+ ```PHP
231
+ <!DOCTYPE html>
232
+ <html lang="ja">
233
+ <head>
234
+ <meta charset="UTF-8">
235
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
236
+ <link rel="stylesheet" type="text/css" href="login.css?v=4">
237
+ <link rel="icon" href="images/wordcard.png">
238
+ <title>Hello!Words ログイン</title>
239
+ </head>
240
+ <body>
241
+ <div id="container">
242
+ <h2>Hello! Words ログイン画面</h2>
243
+ <p>ログイン情報を入力してください</p>
244
+ <!-- action属性で情報の送り先となるページ(Logincheck.php)を指定 -->
245
+ <!-- エラー表示 -->
246
+ <div class="err">ユーザー名またはパスワードが違います</div>
247
+ <form action="Logincheck.php" method="post">
248
+ <table>
249
+ <tr>
250
+ <th>ユーザー名</th>
251
+ <td><input type="text" name="user_name"></td>
252
+ </tr>
253
+ <tr>
254
+ <th>パスワード</th>
255
+ <td><input type="password" name="user_password"></td>
256
+ </tr>
257
+ <tr>
258
+ <!-- <th><input type="submit" href="top.php" value="トップページに戻る"></th> -->
259
+ <th><input class="buttons" type="submit" href="main.php" value="ログイン"></th>
260
+ </tr>
261
+ </table>
262
+ </form>
263
+ <a href="top.php">トップへ戻る</a>
264
+ </div>
265
+ </body>
266
+ </html>
267
+ ```
195
268
 
196
269
  ### 試したこと
197
270
 

2

追記: に回答者の方からご指摘いただいた内容を実践した結果を追加しました。

2021/02/14 05:36

投稿

forestGreen
forestGreen

スコア8

title CHANGED
File without changes
body CHANGED
@@ -17,10 +17,8 @@
17
17
 
18
18
  ※なお、password_hashを用いたパスワードの暗号化は出来ており、暗号化されたパスワードはDB内ユーザーアカウント管理のテーブルに問題なく登録されております。
19
19
 
20
- ```
21
- エラーメッセージ
22
- ```
23
20
 
21
+
24
22
  ### 該当のソースコード
25
23
  password_verifyを使用しているソースコードはこちら↓です。
26
24
  既存のアカウントに対してログインできるかチェックを行う(Logincheck.php)
@@ -227,4 +225,27 @@
227
225
  **使用ツールについて**
228
226
  OS: Windows10
229
227
  開発環境: XAMPP Control Panel v3.2.4
230
- コーディングツール: Visual Studio Code
228
+ コーディングツール: Visual Studio Code
229
+
230
+
231
+ ### 追記:
232
+ hoshi-takanori様からご指摘いただいた内容を試してみました(ご指摘の内容はコメント欄をご覧ください)。
233
+
234
+ - まず、既存のアカウントでログインを行う際にパスワードを空文字でログインを試みたところ、以下↓の画面表示となりました。
235
+
236
+  ユーザーID ユーザー名 ユーザーアドレス ユーザーパスワード(暗号化したもの)
237
+  ユーザーパスワード(暗号化したもの)
238
+  **ログインOK**
239
+
240
+ ...上記 "ログインOK"との表示から、ログイン出来ており、その際のパスワードは空文字で登録されていた。ということが判明しました。
241
+
242
+ - そこで、registAccount.phpファイル内にてパスワードハッシュ化を行う箇所のスーパーグローバル変数を以下のように変更
243
+ ($_SESSION → $_POST)
244
+
245
+ ```PHP
246
+ // パスワードは暗号化して登録する
247
+ $hash = password_hash($_POST["user_password"], PASSWORD_DEFAULT);
248
+ ```
249
+ 上記コードに変更後、テストを行った(新規ユーザー登録を行い、一旦ログアウトした後にログインを試みた)ところ、問題なくログインすることができました。
250
+
251
+ **質問した内容について解決することができ、本当に助かりました。ご回答いただいた皆様、本当にありがとうございました。**

1

補足情報を加筆しました。

2021/02/14 05:28

投稿

forestGreen
forestGreen

スコア8

title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,8 @@
22
22
  ```
23
23
 
24
24
  ### 該当のソースコード
25
+ password_verifyを使用しているソースコードはこちら↓です。
25
- ファル名: Logincheck.php
26
+ 既存のアカウントに対してログンできるかチェックを行う(Logincheck.php)
26
27
  ```PHP
27
28
  <?php
28
29
  // session開始
@@ -109,6 +110,7 @@
109
110
  ?>
110
111
 
111
112
  ```
113
+ **関連ファイルの情報**
112
114
  DBと繋ぐためのファイル(DBconnect.php)
113
115
 
114
116
  ```PHP
@@ -216,10 +218,13 @@
216
218
 
217
219
  ### 補足情報(FW/ツールのバージョンなど)
218
220
 
221
+ **データベースの情報**
219
222
  DB名: hellowordsdb
220
223
  DBでユーザー管理を行うテーブルの情報は以下の通りです。
221
224
  テーブル名: stockuser
222
225
  カラム名: user_id, user_name, user_address, user_password, enable(有効なアカウントかを入力)
223
226
 
227
+ **使用ツールについて**
228
+ OS: Windows10
224
- XAMPP Control Panel v3.2.4
229
+ 開発環境: XAMPP Control Panel v3.2.4
225
230
  コーディングツール: Visual Studio Code