質問編集履歴

1

不要と言われた書き換え前を削除し、 インデントやスペースをなるべく統一

2017/08/05 09:44

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,418 +10,232 @@
10
10
 
11
11
  書き換え後の物に不備や、足りない機能があったら教えていただきたいです。
12
12
 
13
-
13
+ 8/6追記
14
+
14
-
15
+ 不要と言われた書き換え前を削除し、
16
+
17
+ インデントやスペースをなるべく統一しました。
18
+
19
+ 一応下記のソースでエラーは出なくなりましたが、問題がありましたらご指摘ください。
20
+
21
+
22
+
15
- 書き換えlogin_check.php
23
+ 書き換えlogin_check.php
16
24
 
17
25
  ```
18
26
 
27
+
28
+
19
29
  <?php
20
30
 
21
- require_once 'MDB2.php';
22
-
23
- require_once("function.php");
24
-
25
- session_start();
26
-
27
- header("Content-type: text/html; charset=utf-8");
28
-
29
-
30
-
31
- //パラメーター取得
32
-
33
- $id = $_POST['id'];
34
-
35
- $password = $_POST['password'];
36
-
37
-
38
-
39
- //ログイン判定
40
-
41
-
42
-
43
- //DB接続
44
-
45
- $db = MDB2::connect(DNS);
46
-
47
- if (PEAR::isError($db)) {
48
-
49
- die($db->getMessage());
50
-
51
- }
52
-
53
-
54
-
55
- //プレースホルダで SQL 作成
56
-
57
- $sql = "SELECT * FROM USERS WHERE ID = ? AND IS_USER = 1;";
58
-
59
-
60
-
61
- //パラメターの型を指定
62
-
63
- $stmt = $db->prepare($sql, array('text'));
64
-
65
-
66
-
67
- //パラメーターを渡して SQL 実行
68
-
69
- $rs = $stmt->execute(array($id));
70
-
71
-
72
-
73
- $count = 0;
74
-
75
-
76
-
77
- while ($row = $rs->fetchRow(MDB2_FETCHMODE_ASSOC)) {
78
-
79
- $id = $row["id"];
80
-
81
- $salt = $row["salt"];
82
-
83
- $db_password = $row["password"];
84
-
85
- $reset = $row["reset"];
86
-
87
- $count++;
88
-
89
- }
90
-
91
-
92
-
93
- $db->disconnect();
94
-
95
-
96
-
97
- //ログイン失敗
98
-
99
- if ($count != 1) {
100
-
101
- $_SESSION["error_status"] = 1;
102
-
103
- header("HTTP/1.1 301 Moved Permanently");
104
-
105
- header("Location: login.php");
106
-
107
- exit();
108
-
109
- }
110
-
111
-
112
-
113
- //パスワードリセット対応
114
-
115
- if ($reset == 1) {
116
-
117
- $_SESSION["error_status"] = 1;
118
-
119
- header("HTTP/1.1 301 Moved Permanently");
120
-
121
- header("Location: password_reset.php");
122
-
123
- exit();
124
-
125
- }
126
-
127
-
128
-
129
- //パスワード生成
130
-
131
- $hash = strechedPassword($salt, $password);
132
-
133
-
134
-
135
- if ($hash == $db_password) {
136
-
137
- //ログイン
138
-
139
-
140
-
141
- //セッション ID の振り直し
142
-
143
- session_regenerate_id(true);
144
-
145
-
146
-
147
- //セッションに ID を格納
148
-
149
- $_SESSION['id'] = $id;
150
-
151
-
152
-
153
- //CSRF のトークン作成
154
-
155
- $_SESSION["token"] = get_csrf_token();
156
-
157
-
158
-
159
- //DB接続
160
-
161
- $db = MDB2::connect(DNS);
162
-
163
- if (PEAR::isError($db)) {
164
-
165
- die($db->getMessage());
166
-
167
- }
168
-
169
-
170
-
171
- //プレースホルダで SQL 作成
172
-
173
- $sql = "UPDATE USERS SET LAST_LOGIN_TIME = ? WHERE ID = ?";
174
-
175
-
176
-
177
- //パラメーターの型を指定
178
-
179
- $stmt = $db->prepare($sql, array('timestamp','text'));
180
-
181
-
182
-
183
- //パラメーターを渡して SQL 実行
184
-
185
- $stmt->execute(array(date('Y-m-d H:i:s'), $id));
186
-
187
-
188
-
189
- $db->disconnect();
190
-
191
-
192
-
193
- //リダイレクト
194
-
195
- header("HTTP/1.1 301 Moved Permanently");
196
-
197
- header("Location: welcome.php");
198
-
199
- } else {
200
-
201
-
202
-
203
- //ログン失敗
204
-
205
- $_SESSION["error_status"] = 1;
206
-
207
- header("HTTP/1.1 301 Moved Permanently");
208
-
209
- header("Location: login.php");
210
-
211
- }
212
-
213
-
31
+ ini_set('display_errors', 1);
32
+
33
+ error_reporting(E_ALL);
34
+
35
+
36
+
37
+ require_once("function.php");
38
+
39
+ session_start();
40
+
41
+ header("Content-type:text/html;charset=utf-8");
42
+
43
+
44
+
45
+ //パラメーター取得
46
+
47
+ $id = $_POST['id'];
48
+
49
+ $password = $_POST['password'];
50
+
51
+
52
+
53
+ //ログイン判定
54
+
55
+
56
+
57
+ //DB接続
58
+
59
+ $dsn = 'mysql:dbname=portfolio;host=localhost;charset=utf8';
60
+
61
+ $user = 'root';
62
+
63
+ $password = '';
64
+
65
+ $dbh = new PDO($dsn,$user,$password);
66
+
67
+ $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
68
+
69
+
70
+
71
+ //プレスホルダでSQL作成
72
+
73
+ $sql= "SELECT * FROM USERS WHERE ID =? AND IS_USER =1;";
74
+
75
+
76
+
77
+ //パラメータの型指定
78
+
79
+ $stmt = $dbh->prepare($sql);
80
+
81
+
82
+
83
+ //パラメータを渡してSQL実行
84
+
85
+ $rs = $stmt->execute($id);
86
+
87
+
88
+
89
+ $count=0;
90
+
91
+
92
+
93
+ while($row=$rs){
94
+
95
+ $id = $row["id"];
96
+
97
+ $salt = $row["salt"];
98
+
99
+ $db_password = $row["password"];
100
+
101
+ $reset = $row["reset"];
102
+
103
+ $count++;
104
+
105
+ }
106
+
107
+
108
+
109
+ $dbh = null;
110
+
111
+
112
+
113
+ //ログイン失敗
114
+
115
+ if($count !=1){
116
+
117
+ $_SESSION["error_status"]=1;
118
+
119
+ header("HTTP/1.1 301 Moved Permanently");
120
+
121
+ header("Location: login.php");
122
+
123
+ exit();
124
+
125
+ }
126
+
127
+
128
+
129
+ //パスワードリセット対応
130
+
131
+
132
+
133
+ if($reset == 1){
134
+
135
+ $_SESSION["error_status"] =1;
136
+
137
+ header("HTTP/1.1 301 Moved Permanently");
138
+
139
+ header("Location: login.php");
140
+
141
+ exit();
142
+
143
+ }
144
+
145
+
146
+
147
+ //パスワード生
148
+
149
+ $hash = stretchedPassword($salt,$password);
150
+
151
+
152
+
153
+ if($hash == $db_password){
154
+
155
+ //ログイン成功
156
+
157
+
158
+
159
+ //セッション ID振り直し
160
+
161
+ session_regenerate_id(true);
162
+
163
+
164
+
165
+ //セッションにID格納
166
+
167
+ $_SESSION['id']=$id;
168
+
169
+
170
+
171
+ //CSRFのトークン作成
172
+
173
+ $_SESSION["token"]=get_csrf_token();
174
+
175
+
176
+
177
+ //DB接続
178
+
179
+ $dsn = 'mysql:dbname=portfolio;host=localhost;charset=utf8';
180
+
181
+ $id = '';
182
+
183
+ $password = '';
184
+
185
+ $dbh = new PDO($dsn,$user,$password);
186
+
187
+ $dbh->setAttrbute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
188
+
189
+
190
+
191
+ //プレースホルダでSQL作成
192
+
193
+ $sql = "UPDATE USERS SET LAST_LOGIN_TIME = ? WHERE ID = ?";
194
+
195
+
196
+
197
+ //パラメータの型を指定
198
+
199
+ $stmt = $db->prepare($sql,array('timestamp','text'));
200
+
201
+
202
+
203
+ //パラメータを渡してSQL実行
204
+
205
+ $stmt->execute(array(date('Y-m-d H:i:s'),$id));
206
+
207
+
208
+
209
+ $dbh = null;
210
+
211
+
212
+
213
+ //リダレクト
214
+
215
+ header("HTTP/1.1 301 Moved Permanently");
216
+
217
+ header("Location: welcome.php");
218
+
219
+ }else{
220
+
221
+ $_SESSION["error_status"]=1;
222
+
223
+ header("HTTP/1.1 301 Moved Permanently");
224
+
225
+ header("Location: login.php");
226
+
227
+ }
228
+
229
+
230
+
231
+
232
+
233
+ print_r($_SESSION);
234
+
235
+
214
236
 
215
237
  ?>
216
238
 
239
+
240
+
217
241
  ```
218
-
219
- 書き換え後login_check.php
220
-
221
- ```
222
-
223
-
224
-
225
- <?php
226
-
227
-
228
-
229
- require_once("function.php");
230
-
231
- session_start();
232
-
233
- header("Content-type:text/html;charset=utf-8");
234
-
235
-
236
-
237
- //パラメーター取得
238
-
239
- $id =$_POST['id'];
240
-
241
- $password=$_POST['password'];
242
-
243
-
244
-
245
- //ログイン判定
246
-
247
-
248
-
249
- //DB接続 ※
250
-
251
- $dsn='mysql:dbname=portfolio;host=localhost;charset=utf8';
252
-
253
- $id='';
254
-
255
- $password='';
256
-
257
- $dbh=new PDO($dsn,$user,$password);
258
-
259
- $dbh->setAttrbute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
260
-
261
-
262
-
263
- //プレースホルダでSQL作成
264
-
265
- $sql= "SELECT * FROM USERS WHERE ID =? AND IS_USER =1;";
266
-
267
-
268
-
269
- //パラメータの型指定
270
-
271
- $stmt =$db->prepare($sql,array('text'));
272
-
273
-
274
-
275
- //パラメータを渡してSQL実行
276
-
277
- $rs=$stmt->execute(array($id));
278
-
279
-
280
-
281
- $count=0;
282
-
283
-
284
-
285
- while($row=$rs->fetch(PDO::FETCH_ASSOC)){
286
-
287
- $id=$row["id"];
288
-
289
- $salt=$row["salt"];
290
-
291
- $db_password=$row["password"];
292
-
293
- $reset=$row["reset"];
294
-
295
- $count++;
296
-
297
- }
298
-
299
-
300
-
301
- $dbh=null:
302
-
303
-
304
-
305
- //ログイン失敗
306
-
307
- if($count !=1){
308
-
309
- $_SESSION["error_status"]=1;
310
-
311
- header("HTTP/1.1 301 Moved Permanently")
312
-
313
- header("Location: login.php");
314
-
315
- exit();
316
-
317
- }
318
-
319
-
320
-
321
- //パスワードリセット対応
322
-
323
-
324
-
325
- if($reset == 1){
326
-
327
- $_SESSION["error_status"] =1;
328
-
329
- header("HTTP/1.1 301 Moved Permanently")
330
-
331
- header("Location: login.php");
332
-
333
- exit();
334
-
335
- }
336
-
337
-
338
-
339
- //パスワード生成
340
-
341
- $hash=stretchedPassword($salt,$password);
342
-
343
-
344
-
345
- if($hash == $db_password){
346
-
347
- //ログイン成功
348
-
349
-
350
-
351
- //セッション ID振り直し
352
-
353
- session_regenerate_id(true);
354
-
355
-
356
-
357
- //セッションにID格納
358
-
359
- $_SESSION['id']=$id;
360
-
361
-
362
-
363
- //CSRFのトークン作成
364
-
365
- $_SESSION["token"]=get_csrf_token():
366
-
367
-
368
-
369
- //DB接続
370
-
371
- $dsn='mysql:dbname=portfolio;host=localhost;charset=utf8';
372
-
373
- $id='';
374
-
375
- $password='';
376
-
377
- $dbh=new PDO($dsn,$user,$password);
378
-
379
- $dbh->setAttrbute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
380
-
381
-
382
-
383
- //プレースホルダでSQL作成
384
-
385
- $sql="UPDATE USERS SET LAST_LOGIN_TIME = ? WHERE ID = ?";
386
-
387
-
388
-
389
- //パラメータの型を指定
390
-
391
- $stmt = $db->prepare($sql,array('timestamp','text'));
392
-
393
-
394
-
395
- //パラメータを渡してSQL実行
396
-
397
- $stmt->execute(array(date('Y-m-d H:i:s'),$id));
398
-
399
-
400
-
401
- $dbh=null;
402
-
403
-
404
-
405
- //リダイレクト
406
-
407
- header("HTTP/1.1 301 Moved Permanently");
408
-
409
- header("Location: welcome.php");
410
-
411
- }else{
412
-
413
- $_SESSION["error_status"]=1;
414
-
415
- header("HTTP/1.1 301 Moved Permanently");
416
-
417
- header("Location: login.php");
418
-
419
- }
420
-
421
-
422
-
423
- ?>
424
-
425
-
426
-
427
- ```