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

質問編集履歴

4

コード全文消しました

2019/08/18 02:23

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -12,202 +12,7 @@
12
12
  ・参考コードの再インストール
13
13
  ・キャッシュの削除
14
14
 
15
- ### 実際のコード
16
- 問題だと思われるコードを抜粋しました。
17
15
 
18
- ```PHP
19
- [login.php]
20
- <?php
21
-
22
- //共通変数・関数ファイルを読込み
23
- require('function.php');
24
-
25
- debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「');
26
- debug('「 ログインページ ');
27
- debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「');
28
- debugLogStart();
29
-
30
- //ログイン認証
31
- require('auth.php');
32
-
33
- //================================
34
- // ログイン画面処理
35
- //================================
36
- // post送信されていた場合
37
- if(!empty($_POST)){
38
- debug('POST送信があります。');
39
-
40
- //変数にユーザー情報を代入
41
- $email = $_POST['email'];
42
- var_dump($email);
43
- $pass = $_POST['pass'];
44
- $pass_save = (!empty($_POST['pass_save'])) ? true : false; //ショートハンド(略記法)という書き方
45
-
46
- //emailの形式チェック
47
- validEmail($email, 'email');
48
- //emailの最大文字数チェック
49
- validMaxLen($email, 'email');
50
-
51
- //パスワードの半角英数字チェック
52
- validHalf($pass, 'pass');
53
- //パスワードの最大文字数チェック
54
- validMaxLen($pass, 'pass');
55
- //パスワードの最小文字数チェック
56
- validMinLen($pass, 'pass');
57
-
58
- //未入力チェック
59
- validRequired($email, 'email');
60
- validRequired($pass, 'pass');
61
-
62
- if(empty($err_msg)){
63
- debug('バリデーションOKです。');
64
-
65
- //例外処理
66
- try {
67
- // DBへ接続
68
- $dbh = dbConnect();
69
- // SQL文作成
70
- $sql = 'SELECT password,id FROM users WHERE email = :email';
71
- $data = array(':email' => $email);
72
- // クエリ実行
73
- $stmt = queryPost($dbh, $sql, $data);
74
- // クエリ結果の値を取得
75
- $result = $stmt->fetch(PDO::FETCH_ASSOC);
76
-
77
- debug('クエリ結果の中身:'.print_r($result,true));
78
-
79
- // パスワード照合
80
- if(!empty($result) && password_verify($pass, array_shift($result))){
81
- debug('パスワードがマッチしました。');
82
-
83
- //ログイン有効期限(デフォルトを1時間とする)
84
- $sesLimit = 60*60;
85
- // 最終ログイン日時を現在日時に
86
- $_SESSION['login_date'] = time(); //time関数は1970年1月1日 00:00:00 を0として、1秒経過するごとに1ずつ増加させた値が入る
87
-
88
- // ログイン保持にチェックがある場合
89
- if($pass_save){
90
- debug('ログイン保持にチェックがあります。');
91
- // ログイン有効期限を30日にしてセット
92
- $_SESSION['login_limit'] = $sesLimit * 24 * 30;
93
- }else{
94
- debug('ログイン保持にチェックはありません。');
95
- // 次回からログイン保持しないので、ログイン有効期限を1時間後にセット
96
- $_SESSION['login_limit'] = $sesLimit;
97
- }
98
- // ユーザーIDを格納
99
- $_SESSION['user_id'] = $result['id'];
100
-
101
- debug('セッション変数の中身:'.print_r($_SESSION,true));
102
- debug('マイページへ遷移します。');
103
- header("Location:mypage.html"); //マイページへ
104
- }else{
105
- debug('パスワードがアンマッチです。');
106
- $err_msg['common'] = MSG09;
107
- }
108
-
109
- } catch (Exception $e) {
110
- error_log('エラー発生:' . $e->getMessage());
111
- $err_msg['common'] = MSG07;
112
- }
113
- }
114
- }
115
- debug('画面表示処理終了 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<');
116
- ?>
117
- <!DOCTYPE html>
118
- <html lang="ja">
119
-
120
- <head>
121
- <meta charset="utf-8">
122
- <title>ログイン</title>
123
- <link rel="stylesheet" type="text/css" href="style.css">
124
- <link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
125
- </head>
126
-
127
- <body class="page-login page-1colum">
128
-
129
- <!-- メニュー -->
130
- <header>
131
- <div class="site-width">
132
- <h1><a href="index.html">MARKET</a></h1>
133
- <nav id="top-nav">
134
- <ul>
135
- <li><a href="signup.html" class="btn btn-primary">ユーザー登録</a></li>
136
- <li><a href="">ログイン</a></li>
137
- </ul>
138
- </nav>
139
- </div>
140
- </header>
141
-
142
- <!-- メインコンテンツ -->
143
- <div id="contents" class="site-width">
144
-
145
- <!-- Main -->
146
- <section id="main" >
147
-
148
- <div class="form-container">
149
-
150
- <form action="" method="post" class="form">
151
- <h2 class="title">ログイン</h2>
152
- <div class="area-msg">
153
- <?php
154
- if(!empty($err_msg['common'])) echo $err_msg['common'];
155
- ?>
156
- </div>
157
- <label class="<?php if(!empty($err_msg['email'])) echo 'err'; ?>">
158
- メールアドレス
159
- <input type="text" name="email" value="<?php if(!empty($_POST['email'])) echo $_POST['email']; ?>">
160
- </label>
161
- <div class="area-msg">
162
- <?php
163
- if(!empty($err_msg['email'])) echo $err_msg['email'];
164
- ?>
165
- </div>
166
- <label class="<?php if(!empty($err_msg['pass'])) echo 'err'; ?>">
167
- パスワード
168
- <input type="password" name="pass" value="<?php if(!empty($_POST['pass'])) echo $_POST['pass']; ?>">
169
- </label>
170
- <div class="area-msg">
171
- <?php
172
- if(!empty($err_msg['pass'])) echo $err_msg['pass'];
173
- ?>
174
- </div>
175
- <label>
176
- <input type="checkbox" name="pass_save">次回ログインを省略する
177
- </label>
178
- <div class="btn-container">
179
- <input type="submit" class="btn btn-mid" value="ログイン">
180
- </div>
181
- パスワードを忘れた方は<a href="passRemindSend.html">コチラ</a>
182
- </form>
183
- </div>
184
-
185
- </section>
186
-
187
- </div>
188
-
189
- <!-- footer -->
190
- <footer id="footer">
191
- Copyright <a href="http://〇〇.com/"></a>. All Rights Reserved.
192
- </footer>
193
-
194
- <script src="js/vendor/jquery-2.2.2.min.js"></script>
195
- <script>
196
- $(function(){
197
- var $ftr = $('#footer');
198
- if( window.innerHeight > $ftr.offset().top + $ftr.outerHeight() ){
199
- $ftr.attr({'style': 'position:fixed; top:' + (window.innerHeight - $ftr.outerHeight()) +'px;' });
200
- }
201
- });
202
- </script>
203
- </body>
204
- </html>
205
-
206
-
207
- }
208
- ```<
209
-
210
-
211
16
  ### 解決したいこと
212
17
  POST送信が正常に行われてログインできるようにしたいです。
213
18
 

3

コード全文のせました

2019/08/18 02:23

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  Login機能を作っているのですが、email、passを入力して送信ボタンを押しても、ブラウザが何も反応せずに固まってしまいます。
3
3
  emailとpassはDBに保存済みです。ちなみに、一昨日までは普通にログインができました。
4
4
  エラーコードもデバッグも何もでない状態です。
5
+
6
+
5
7
  参考コードを再インストールしたところ、一度はPOST送信できましたが、もう一度送信ボタンを押すともとに戻りました。
6
8
 
7
9
  ### 試したこと
@@ -14,8 +16,132 @@
14
16
  問題だと思われるコードを抜粋しました。
15
17
 
16
18
  ```PHP
17
- div id="contents" class="site-width">
19
+ [login.php]
20
+ <?php
18
21
 
22
+ //共通変数・関数ファイルを読込み
23
+ require('function.php');
24
+
25
+ debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「');
26
+ debug('「 ログインページ ');
27
+ debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「');
28
+ debugLogStart();
29
+
30
+ //ログイン認証
31
+ require('auth.php');
32
+
33
+ //================================
34
+ // ログイン画面処理
35
+ //================================
36
+ // post送信されていた場合
37
+ if(!empty($_POST)){
38
+ debug('POST送信があります。');
39
+
40
+ //変数にユーザー情報を代入
41
+ $email = $_POST['email'];
42
+ var_dump($email);
43
+ $pass = $_POST['pass'];
44
+ $pass_save = (!empty($_POST['pass_save'])) ? true : false; //ショートハンド(略記法)という書き方
45
+
46
+ //emailの形式チェック
47
+ validEmail($email, 'email');
48
+ //emailの最大文字数チェック
49
+ validMaxLen($email, 'email');
50
+
51
+ //パスワードの半角英数字チェック
52
+ validHalf($pass, 'pass');
53
+ //パスワードの最大文字数チェック
54
+ validMaxLen($pass, 'pass');
55
+ //パスワードの最小文字数チェック
56
+ validMinLen($pass, 'pass');
57
+
58
+ //未入力チェック
59
+ validRequired($email, 'email');
60
+ validRequired($pass, 'pass');
61
+
62
+ if(empty($err_msg)){
63
+ debug('バリデーションOKです。');
64
+
65
+ //例外処理
66
+ try {
67
+ // DBへ接続
68
+ $dbh = dbConnect();
69
+ // SQL文作成
70
+ $sql = 'SELECT password,id FROM users WHERE email = :email';
71
+ $data = array(':email' => $email);
72
+ // クエリ実行
73
+ $stmt = queryPost($dbh, $sql, $data);
74
+ // クエリ結果の値を取得
75
+ $result = $stmt->fetch(PDO::FETCH_ASSOC);
76
+
77
+ debug('クエリ結果の中身:'.print_r($result,true));
78
+
79
+ // パスワード照合
80
+ if(!empty($result) && password_verify($pass, array_shift($result))){
81
+ debug('パスワードがマッチしました。');
82
+
83
+ //ログイン有効期限(デフォルトを1時間とする)
84
+ $sesLimit = 60*60;
85
+ // 最終ログイン日時を現在日時に
86
+ $_SESSION['login_date'] = time(); //time関数は1970年1月1日 00:00:00 を0として、1秒経過するごとに1ずつ増加させた値が入る
87
+
88
+ // ログイン保持にチェックがある場合
89
+ if($pass_save){
90
+ debug('ログイン保持にチェックがあります。');
91
+ // ログイン有効期限を30日にしてセット
92
+ $_SESSION['login_limit'] = $sesLimit * 24 * 30;
93
+ }else{
94
+ debug('ログイン保持にチェックはありません。');
95
+ // 次回からログイン保持しないので、ログイン有効期限を1時間後にセット
96
+ $_SESSION['login_limit'] = $sesLimit;
97
+ }
98
+ // ユーザーIDを格納
99
+ $_SESSION['user_id'] = $result['id'];
100
+
101
+ debug('セッション変数の中身:'.print_r($_SESSION,true));
102
+ debug('マイページへ遷移します。');
103
+ header("Location:mypage.html"); //マイページへ
104
+ }else{
105
+ debug('パスワードがアンマッチです。');
106
+ $err_msg['common'] = MSG09;
107
+ }
108
+
109
+ } catch (Exception $e) {
110
+ error_log('エラー発生:' . $e->getMessage());
111
+ $err_msg['common'] = MSG07;
112
+ }
113
+ }
114
+ }
115
+ debug('画面表示処理終了 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<');
116
+ ?>
117
+ <!DOCTYPE html>
118
+ <html lang="ja">
119
+
120
+ <head>
121
+ <meta charset="utf-8">
122
+ <title>ログイン</title>
123
+ <link rel="stylesheet" type="text/css" href="style.css">
124
+ <link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
125
+ </head>
126
+
127
+ <body class="page-login page-1colum">
128
+
129
+ <!-- メニュー -->
130
+ <header>
131
+ <div class="site-width">
132
+ <h1><a href="index.html">MARKET</a></h1>
133
+ <nav id="top-nav">
134
+ <ul>
135
+ <li><a href="signup.html" class="btn btn-primary">ユーザー登録</a></li>
136
+ <li><a href="">ログイン</a></li>
137
+ </ul>
138
+ </nav>
139
+ </div>
140
+ </header>
141
+
142
+ <!-- メインコンテンツ -->
143
+ <div id="contents" class="site-width">
144
+
19
145
  <!-- Main -->
20
146
  <section id="main" >
21
147
 
@@ -60,11 +186,25 @@
60
186
 
61
187
  </div>
62
188
 
63
- //変数にユーザー情報を代入。var_dumpで中身を確認したが、処理されていない。(POST送信されていない)
64
- $email = $_POST['email'];
189
+ <!-- footer -->
65
- $pass = $_POST['pass'];
190
+ <footer id="footer">
66
- $pass_save = (!empty($_POST['pass_save'])) ? true : false;
191
+ Copyright <a href="http://〇〇.com/"></a>. All Rights Reserved.
192
+ </footer>
67
193
 
194
+ <script src="js/vendor/jquery-2.2.2.min.js"></script>
195
+ <script>
196
+ $(function(){
197
+ var $ftr = $('#footer');
198
+ if( window.innerHeight > $ftr.offset().top + $ftr.outerHeight() ){
199
+ $ftr.attr({'style': 'position:fixed; top:' + (window.innerHeight - $ftr.outerHeight()) +'px;' });
200
+ }
201
+ });
202
+ </script>
203
+ </body>
204
+ </html>
205
+
206
+
207
+ }
68
208
  ```<
69
209
 
70
210
 

2

マークダウンに訂正しました

2019/08/17 05:15

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -59,13 +59,15 @@
59
59
  </section>
60
60
 
61
61
  </div>
62
- ```<
63
62
 
64
63
  //変数にユーザー情報を代入。var_dumpで中身を確認したが、処理されていない。(POST送信されていない)
65
64
  $email = $_POST['email'];
66
65
  $pass = $_POST['pass'];
67
66
  $pass_save = (!empty($_POST['pass_save'])) ? true : false;
68
67
 
68
+ ```<
69
+
70
+
69
71
  ### 解決したいこと
70
72
  POST送信が正常に行われてログインできるようにしたいです。
71
73
 

1

マークダウンに訂正しました

2019/08/17 05:03

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,8 @@
13
13
  ### 実際のコード
14
14
  問題だと思われるコードを抜粋しました。
15
15
 
16
+ ```PHP
16
- <div id="contents" class="site-width">
17
+ div id="contents" class="site-width">
17
18
 
18
19
  <!-- Main -->
19
20
  <section id="main" >
@@ -58,6 +59,7 @@
58
59
  </section>
59
60
 
60
61
  </div>
62
+ ```<
61
63
 
62
64
  //変数にユーザー情報を代入。var_dumpで中身を確認したが、処理されていない。(POST送信されていない)
63
65
  $email = $_POST['email'];