質問編集履歴

5

phpのファイル設定の変更

2020/05/08 11:33

投稿

hianmain
hianmain

スコア0

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,9 @@
24
24
 
25
25
 
26
26
 
27
+ エラー表記に関して
28
+
27
- エラーに関ては何も発生していないので、if文文法実現した条件文っていないかもしれません
29
+ error_reporting(E_ALL & ~E_NOTICE);の設定をするらnoticeエラー出なようっているとことです
28
30
 
29
31
 
30
32
 
@@ -40,7 +42,7 @@
40
42
 
41
43
 
42
44
 
43
- ini_set('display_errors', 1);
45
+ error_reporting(E_ALL & ~E_NOTICE);
44
46
 
45
47
 
46
48
 

4

コメントの追記

2020/05/08 11:32

投稿

hianmain
hianmain

スコア0

test CHANGED
File without changes
test CHANGED
@@ -100,7 +100,7 @@
100
100
 
101
101
  if($_POST['token'] !== $_SESSION['token']){
102
102
 
103
- //セッションの内容を削除
103
+ //セッションの内容を削除する処理を後ほど記述
104
104
 
105
105
  header( "Location: ./login.php" );
106
106
 

3

コードの追記

2020/05/08 08:52

投稿

hianmain
hianmain

スコア0

test CHANGED
File without changes
test CHANGED
@@ -36,19 +36,503 @@
36
36
 
37
37
  ```PHP
38
38
 
39
- <?php foreach($rows as $row) : ?>
40
-
41
-
42
-
43
- <input class="radio" type="radio" name="color" value="<?php echo h($row['COLOR_ID']) ; ?>" id="<?php echo h($row['COLOR_ID']) ; ?>"
44
-
45
- <?php if($_SESSION['COLOR'] === "" && h($row['COLOR_ID']) === 3 || $_SESSION['COLOR'] === h($row['COLOR_ID'])){ echo 'checked' ;} ;?>>
46
-
47
- <label for="<?php echo h($row['COLOR_ID']) ; ?>" style="color:#<?php echo h($row['COLOR_CODE']) ; ?>"><?php echo h($row['COLOR_NAME']) ; ?></label>
48
-
49
-
50
-
51
- <?php endforeach ; ?>
39
+ <?php
40
+
41
+
42
+
43
+ ini_set('display_errors', 1);
44
+
45
+
46
+
47
+ //セッションスタート
48
+
49
+ session_start();
50
+
51
+
52
+
53
+ //DB接続クラス読み込み
54
+
55
+ include 'DBConnect.php';
56
+
57
+
58
+
59
+ //共通関数読み込み
60
+
61
+ include 'function.php';
62
+
63
+
64
+
65
+ //セッションIDを再作成する
66
+
67
+ session_regenerate_id(true);
68
+
69
+
70
+
71
+ //エスケープ
72
+
73
+ function h($s) {
74
+
75
+ return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
76
+
77
+ }
78
+
79
+
80
+
81
+ //ログインしているか判断
82
+
83
+ if(empty($_SESSION['USER_ID'])){
84
+
85
+ header( "Location: ./login.php" );
86
+
87
+ exit();
88
+
89
+ }
90
+
91
+
92
+
93
+ //確認ボタンを押した
94
+
95
+ if(!empty($_POST['Submit'])){
96
+
97
+
98
+
99
+ //処理
100
+
101
+ if($_POST['token'] !== $_SESSION['token']){
102
+
103
+ //セッションの内容を削除
104
+
105
+ header( "Location: ./login.php" );
106
+
107
+ exit();
108
+
109
+ }else{
110
+
111
+ //POSTされた値を$_SESSION['XXX']に代入
112
+
113
+ $_SESSION['USER_NAME'] = $_POST['username'];
114
+
115
+ $_SESSION['EMAIL'] = $_POST['email'];
116
+
117
+ $_SESSION['TITLE'] = $_POST['title'];
118
+
119
+ $_SESSION['TEXT'] = $_POST['text'];
120
+
121
+ $_SESSION['COLOR'] = $_POST['color'];
122
+
123
+
124
+
125
+ //エラー変数を空にする
126
+
127
+ $err = "";
128
+
129
+
130
+
131
+
132
+
133
+ //EmailCheck
134
+
135
+ $checkEmail = new CheckFunction();
136
+
137
+ $return = $checkEmail->checkEmail($_SESSION['EMAIL']);
138
+
139
+ if($return === false){
140
+
141
+ $err = "E-mailは’半角英数字@test.co.jp’の形式で入力してください<br />";
142
+
143
+ }
144
+
145
+
146
+
147
+ //文字数Check
148
+
149
+ $checklen = new CheckFunction();
150
+
151
+ $param2 = 50;
152
+
153
+ $return = $checklen->checkLen($_SESSION['TITLE'],$param2);
154
+
155
+ if($return === false){
156
+
157
+ $err .= "タイトルは50文字以下で入力してください<br />";
158
+
159
+ }
160
+
161
+
162
+
163
+ //空文字Check(TEXT)
164
+
165
+ $checkBlank = new CheckFunction();
166
+
167
+ $return = $checkBlank->checkBlank($_SESSION['TEXT']);
168
+
169
+ if($return === false){
170
+
171
+ $err .= "「本文」を入力してください<br />";
172
+
173
+ }
174
+
175
+
176
+
177
+ if(empty($err)){
178
+
179
+ $_SESSION['ACTION_NAME'] = "inout_confirm";
180
+
181
+ header( "Location: ./confirm.php" );
182
+
183
+ exit();
184
+
185
+ }
186
+
187
+
188
+
189
+ }
190
+
191
+ }
192
+
193
+
194
+
195
+ if(!empty($_POST['clear'])){
196
+
197
+ //$_SESSION['XXX']の情報を削除
198
+
199
+
200
+
201
+ unset($_SESSION['USER_NAME']);
202
+
203
+ unset($_SESSION['EMAIL']);
204
+
205
+ unset($_SESSION['TITLE']);
206
+
207
+ unset($_SESSION['TEXT']);
208
+
209
+ unset($_SESSION['COLOR']);
210
+
211
+
212
+
213
+ $_SESSION['ACTION_NAME'] = "input_clear";
214
+
215
+ }
216
+
217
+
218
+
219
+ //$_SESSION['ACTION_NAME'] に "input_display"を代入
220
+
221
+ $_SESSION['ACTION_NAME'] = "input_display";
222
+
223
+
224
+
225
+ ?>
226
+
227
+ <!-- HTML出力 -->
228
+
229
+ <!-- $err変数を表示 -->
230
+
231
+ <!DOCTYPE html>
232
+
233
+ <html lang="ja">
234
+
235
+ <head>
236
+
237
+ <meta charset="UTF-8">
238
+
239
+ <link rel="stylesheet" href="./css/master.css" type="text/css">
240
+
241
+ <title>掲示板</title>
242
+
243
+ </head>
244
+
245
+ <body>
246
+
247
+ <header>
248
+
249
+ 掲示板
250
+
251
+ </header>
252
+
253
+ <?php echo $_SESSION['COLOR']; //ここで送信を押した際に$_SESSION['COLOR']に値が入るか確認をしていました。
254
+
255
+ if(isset($err)){
256
+
257
+ echo "<span style='color:#ff0000'>".$err ."</span>";
258
+
259
+ }
260
+
261
+ ?>
262
+
263
+ <main>
264
+
265
+ <div>
266
+
267
+ <form action="input.php" method="POST">
268
+
269
+ <div>
270
+
271
+ <table class="inputArticle">
272
+
273
+ <tr>
274
+
275
+ <td class="itemName"><div>名前</div></td>
276
+
277
+ <td><div>
278
+
279
+ <input type="text" name="username" value="<?php echo h($_SESSION['USER_NAME']) ;?>">
280
+
281
+ </div></td>
282
+
283
+ </tr>
284
+
285
+ <tr>
286
+
287
+ <td class="itemName"><div>E-mail</div></td>
288
+
289
+ <td><div>
290
+
291
+ <input type="text" name="email" value="<?php echo h($_SESSION['EMAIL']) ;?>">
292
+
293
+ </div></td>
294
+
295
+ </tr>
296
+
297
+ <tr>
298
+
299
+ <td class="itemName"><div>タイトル</div></td>
300
+
301
+ <td><div>
302
+
303
+ <input type="text" name="title" value="<?php echo h($_SESSION['TITLE']) ;?>">
304
+
305
+ </div></td>
306
+
307
+ </tr>
308
+
309
+ <tr>
310
+
311
+ <td class="itemName"><div>本文</div></td>
312
+
313
+ <td><div>
314
+
315
+ <textarea name="text" cols="35" rows="5"><?php echo h($_SESSION['TEXT']) ;?></textarea>
316
+
317
+ </div></td>
318
+
319
+ </tr>
320
+
321
+ <?php
322
+
323
+
324
+
325
+ //DB,COLOR_MASTERからデータを全件取得
326
+
327
+ $dbh = new DBgetDBH();
328
+
329
+ $stmt = $dbh->getDBconnect()->prepare('select * from COLOR_MASTER');
330
+
331
+
332
+
333
+ $stmt->execute();
334
+
335
+ $rows = $stmt->fetchAll();
336
+
337
+ ?>
338
+
339
+ <tr>
340
+
341
+ <td class="itemName"><div>文字色</div></td>
342
+
343
+ <td><div>
344
+
345
+ <!-- 後で直す -->
346
+
347
+ <?php foreach($rows as $row) : ?>
348
+
349
+ <input class="radio" type="radio" name="color" value="<?php echo h($row['COLOR_ID']) ; ?>" id="<?php echo h($row['COLOR_ID']) ; ?>"
350
+
351
+ <?php if($_SESSION['COLOR'] === "" AND h($row['COLOR_ID']) === 3 OR $_SESSION['COLOR'] === h($row['COLOR_ID'])){ echo 'checked' ;} ;?>>
352
+
353
+ <label for="<?php echo h($row['COLOR_ID']) ; ?>" style="color:#<?php echo h($row['COLOR_CODE']) ; ?>"><?php echo h($row['COLOR_NAME']) ; ?></label>
354
+
355
+ <?php endforeach ; ?>
356
+
357
+ </div></td>
358
+
359
+ </tr>
360
+
361
+ </table>
362
+
363
+ </div>
364
+
365
+ <div>
366
+
367
+ <?php
368
+
369
+
370
+
371
+ //セッションIDを$_SESSIONに格納
372
+
373
+ $_SESSION['SESSION_ID'] = session_id();
374
+
375
+
376
+
377
+ //$_SESSION_IDをハッシュ化してトークンを生成
378
+
379
+ $token = hash("sha256", $_SESSION['SESSION_ID']);
380
+
381
+
382
+
383
+ $_SESSION['token'] = $token;
384
+
385
+
386
+
387
+ ?>
388
+
389
+ <input type="submit" name="clear" value="クリア">
390
+
391
+ <input type="submit" name="Submit" value="確認">
392
+
393
+ <input type="hidden" name="token" value="<?php echo $token ; ?>">
394
+
395
+ </div>
396
+
397
+ </form>
398
+
399
+ <hr>
400
+
401
+ <?php
402
+
403
+
404
+
405
+ //DBから過去記事を取得
406
+
407
+ $dbh = new DBgetDBH();
408
+
409
+ $stmt = $dbh->getDBconnect()->prepare('SELECT * FROM ARTICLE RIGHT JOIN COLOR_MASTER ON ARTICLE.COLOR_ID = COLOR_MASTER.COLOR_ID ORDER BY CREATE_DATE DESC;');
410
+
411
+ $stmt->execute();
412
+
413
+ $rows = $stmt->fetchAll();
414
+
415
+
416
+
417
+ ?>
418
+
419
+ <div>
420
+
421
+ <?php foreach($rows as $row) : ?>
422
+
423
+ <table class="postedArticle" style="color:#<?php echo h($row['COLOR_CODE']); ?>">
424
+
425
+ <tr>
426
+
427
+ <td class="articleId"><div><?php echo h($row['ARTICLE_ID']) ; ?></div></td>
428
+
429
+ <td class="articleTitle"><div>
430
+
431
+ <?php
432
+
433
+
434
+
435
+ $checkBlank = new CheckFunction();
436
+
437
+ $return = $checkBlank->checkBlank(h($row['TITLE']));
438
+
439
+ if($return === false){
440
+
441
+ echo "no title";
442
+
443
+ }else{
444
+
445
+ echo h($row['TITLE']);
446
+
447
+ }
448
+
449
+ ?>
450
+
451
+ </div></td>
452
+
453
+ </tr>
454
+
455
+ <tr>
456
+
457
+ <!--
458
+
459
+ colspanタグ…表(テーブル)にて、水平方向のセルの結合数(セルがまたがる列数)を指定する。
460
+
461
+ -->
462
+
463
+ <td class="articleText" colspan="2"><div>
464
+
465
+ <?php echo h($row['TEXT']) ?>
466
+
467
+ </div></td>
468
+
469
+ </tr>
470
+
471
+ <tr>
472
+
473
+ <td class="articleDate" colspan="2"><div>
474
+
475
+ <?php
476
+
477
+ $date = h($row['CREATE_DATE']);
478
+
479
+ echo date('Y年m月d日 H時i分',strtotime($date));
480
+
481
+
482
+
483
+ $checkBlank = new CheckFunction();
484
+
485
+ $return = $checkBlank->checkBlank(h($row['NAME']));
486
+
487
+
488
+
489
+ if($return === false){
490
+
491
+ $name = "nobody";
492
+
493
+ }else{
494
+
495
+ $name = h($row['NAME']);
496
+
497
+ }
498
+
499
+
500
+
501
+ $checkBlank = new CheckFunction();
502
+
503
+ $return = $checkBlank->checkBlank(h($row['EMAIL']));
504
+
505
+
506
+
507
+ if($return === false){
508
+
509
+ echo " ".h($name);
510
+
511
+ }else{
512
+
513
+ echo " ".'<a href="mailto:'.h($row['EMAIL']).'">'.h($name).'</a>';
514
+
515
+ }
516
+
517
+ ?>
518
+
519
+ </div></td>
520
+
521
+ </tr>
522
+
523
+ </table>
524
+
525
+ <?php endforeach ; ?>
526
+
527
+ </div>
528
+
529
+ </div>
530
+
531
+ </main>
532
+
533
+ </body>
534
+
535
+ </html>
52
536
 
53
537
  ```
54
538
 

2

エラーについての追記

2020/05/08 08:49

投稿

hianmain
hianmain

スコア0

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,10 @@
21
21
  ### 発生している問題・エラーメッセージ
22
22
 
23
23
  上記の条件式に合う、コードを記述していると思うのですが、最初にページを開いた際(初期状態)に、ラジオボタンのID3にcheckedがつかないです。
24
+
25
+
26
+
27
+ エラーに関しては何も発生していないので、if文の文法が実現したい条件文に合っていないのかもしれません。
24
28
 
25
29
 
26
30
 

1

タグを変更しました

2020/05/08 08:38

投稿

hianmain
hianmain

スコア0

test CHANGED
File without changes
test CHANGED
File without changes