質問編集履歴

4

タイトル2

2019/08/20 02:52

投稿

Junya42
Junya42

スコア5

test CHANGED
@@ -1 +1 @@
1
- 私のコードをチェックしていただけませんか。回答(クラスやセッションPOST/GETの利用方法や動作条件について
1
+ 私のコードをチェックしていただけませんか。回答(session_startの位置filter_input
test CHANGED
File without changes

3

タイトル

2019/08/20 02:52

投稿

Junya42
Junya42

スコア5

test CHANGED
@@ -1 +1 @@
1
- 私のコードをチェックしていただけませんか。
1
+ 私のコードをチェックしていただけませんか。回答(クラスやセッション、POST/GETの利用方法や動作条件について)
test CHANGED
File without changes

2

header location

2019/08/20 02:42

投稿

Junya42
Junya42

スコア5

test CHANGED
File without changes
test CHANGED
@@ -640,7 +640,7 @@
640
640
 
641
641
  echo "完了";
642
642
 
643
- header( "Location: {{route('tyuubou')}}" ) ;
643
+ header( "Location: tyuubou2.php直していなかったです。すいません" ) ;
644
644
 
645
645
 
646
646
 

1

tindexのところが間違っていました

2019/08/20 02:40

投稿

Junya42
Junya42

スコア5

test CHANGED
File without changes
test CHANGED
@@ -92,10 +92,502 @@
92
92
 
93
93
  ```php
94
94
 
95
+ <!DOCTYPE html>
96
+
97
+ <html lang="ja" dir="ltr">
98
+
99
+ <head>
100
+
101
+ <meta charset="utf-8">
102
+
103
+ <meta name="viewport" content="width=device-width">
104
+
105
+ <link rel="stylesheet" href="style.css">
106
+
107
+ <title>神田まつややぶそば</title>
108
+
109
+
110
+
111
+ </head>
112
+
113
+ <body>
114
+
115
+ <article class="">
116
+
117
+ <header>
118
+
119
+ <h1>ご注文</h1>
120
+
121
+ <h3>
122
+
123
+ いらっしゃいませ。お越しいただきありがとうございます。 <br>
124
+
125
+ 下記のメニューより注文をお決めくださいませ。
126
+
127
+ </h3>
128
+
129
+ </header>
130
+
131
+ <div class="">
132
+
133
+
134
+
135
+ </div>
136
+
137
+       <form class="" action="thanks.php" method="post">
138
+
139
+     <?php foreach ($menus as $menu) : ?>
140
+
141
+
142
+
143
+ <section class="contents">
144
+
145
+ <img src="images/<?php echo($menu['name']); ?>.jpg" alt="a">
146
+
147
+ <div class="商品名">
148
+
149
+ <?php echo($menu['name']); ?>
150
+
151
+ </div>
152
+
153
+
154
+
155
+ <div class="値段">
156
+
157
+ <?php echo($menu["price"]."円"); ?>
158
+
159
+ </div>
160
+
161
+ <a class="個数">個数
162
+
163
+ <?php $n = $menu['name']; ?>
164
+
165
+ <select class="select" name=<?php echo $n; ?>>
166
+
167
+ <?php for ($i=0; $i <10 ; $i++): ?>
168
+
169
+ <option value="<?php echo $i ;?>"><?php echo $i; ?></option>
170
+
171
+ <?php endfor; ?>
172
+
173
+ </select>
174
+
175
+ </a>
176
+
177
+ </section>
178
+
179
+ <?php endforeach; ?>
180
+
181
+ <a class="人数">テーブル番号
182
+
183
+ <select class="select" name="table" id="table">
184
+
185
+   <?php for ($i=0; $i <15 ; $i++): ?>
186
+
187
+      <option value="<?php echo $i ?>"><?php echo $i.番 ?></option>
188
+
189
+      <?php endfor; ?>
190
+
191
+ </select>
192
+
193
+ </a>
194
+
195
+ <a class="人数">人数
196
+
197
+ <select class="select" name="hito" id="hito">
198
+
199
+ <?php for ($i=0; $i <30 ; $i++): ?>
200
+
201
+ <option value="<?php echo $i ?>"><?php echo $i.人 ?></option>
202
+
203
+ <?php endfor; ?>
204
+
205
+ </select>
206
+
207
+ </a>
208
+
209
+ <input type="submit" name="" value="注文" class="注文 button" id="submit_btn">
210
+
211
+ </form>
212
+
213
+ </body>
214
+
215
+ </html>
216
+
217
+
218
+
219
+ ```
220
+
221
+ thanks.php
222
+
223
+ ```php
224
+
225
+
226
+
227
+ <?php if ($_POST['table'] == 0 ) : ?>
228
+
229
+
230
+
231
+ <!DOCTYPE html>
232
+
233
+ <html lang="ja" dir="ltr">
234
+
235
+ <head>
236
+
237
+ <meta charset="utf-8">
238
+
239
+ <meta http-equiv=refresh content=5;URL='index.php'>
240
+
241
+ <title></title>
242
+
243
+ </head>
244
+
245
+ <body>
246
+
247
+
248
+
249
+
250
+
251
+ すみませんが、テーブル番号と人数の入力をお願い致します
252
+
253
+
254
+
255
+
256
+
257
+ </body>
258
+
259
+ </html>
260
+
261
+
262
+
263
+ <?php else : //これじゃないとだめらしい。 ?>
264
+
265
+
266
+
267
+ <!DOCTYPE html>
268
+
269
+ <html lang="ja" dir="ltr">
270
+
271
+ <head>
272
+
273
+ <meta charset="utf-8">
274
+
275
+ <meta http-equiv=refresh content=5;URL='index.php'>
276
+
277
+ <title></title>
278
+
279
+ </head>
280
+
281
+ <body>
282
+
283
+ 御注文ありがとうございます。
284
+
285
+ <?php
286
+
287
+
288
+
289
+ $n = $_POST['table'];
290
+
291
+
292
+
293
+ ${"ordertable".$n} = $_POST ;
294
+
295
+ session_start();
296
+
297
+ $_SESSION['ordertable'.$n] = ${"ordertable".$n};
298
+
299
+
300
+
301
+ ?>
302
+
303
+
304
+
305
+ <?php endif; ?>
306
+
307
+ </body>
308
+
309
+ </html>
310
+
311
+
312
+
313
+ ```
314
+
315
+ tyuubou2.php
316
+
317
+ ```php
318
+
319
+
320
+
321
+
322
+
323
+ <html lang="ja" dir="ltr">
324
+
325
+ <head>
326
+
327
+ <meta charset="utf-8">
328
+
329
+ <meta name="viewport" content="width=device-width">
330
+
331
+ <link rel="stylesheet" href="style2.css">
332
+
333
+ <title></title>
334
+
335
+ </head>
336
+
337
+ <body>
338
+
339
+ <article class="">
340
+
341
+ <header>
342
+
343
+ <h1>オーダー</h1>
344
+
345
+ </header>
346
+
347
+
348
+
349
+
350
+
351
+ <?php session_start();
352
+
353
+
354
+
355
+ foreach ($_SESSION as $ordertable => $orders) :?>
356
+
357
+ <?php foreach ($orders as $menu => $num): ?>
358
+
359
+
360
+
361
+ <?php if(!0==($num)){
362
+
363
+ if ($menu !== 'table'&& $menu !=='hito') { ?>
364
+
365
+   <section class="">
366
+
367
+
368
+
369
+
370
+
371
+ <div class="商品名">
372
+
373
+ <?php echo $menu; ?>
374
+
375
+ </div>
376
+
377
+
378
+
379
+ <form class="" action="uriage.php" method="post">
380
+
381
+ <a class="個数">個数
382
+
383
+ <select class="select" >
384
+
385
+ <option> <?php echo $num; ?></option>
386
+
387
+ </select>
388
+
389
+ </a>
390
+
391
+ <input type="hidden" name="num" value="<?php echo $num; ?>">
392
+
393
+ <input type="hidden" name="menu" value="<?php echo $menu; ?>">
394
+
395
+ <input type="hidden" name="table" value="<?php echo $orders[table] ?>">
396
+
397
+ <input type="hidden" name="hito" value="<?php echo $orders[hito] ?>">
398
+
399
+ <input type="submit" value="完了">
400
+
401
+ </form>
402
+
403
+
404
+
405
+
406
+
407
+ <a class="右">テーブル番号
408
+
409
+ <select class="select" >
410
+
411
+      <option><?php echo $orders[table] ?></option>
412
+
413
+ </select>
414
+
415
+ </a>
416
+
417
+
418
+
419
+
420
+
421
+ <a class="人">人数
422
+
423
+ <select class="select" name="hito" >?>
424
+
425
+ <option><?php echo $orders[hito] ?></option>
426
+
427
+ </select>
428
+
429
+ </a>
430
+
431
+
432
+
433
+
434
+
435
+ </section>
436
+
437
+ <?php } }?>
438
+
439
+ <?php endforeach;?>
440
+
441
+ <?php endforeach;?>
442
+
443
+
444
+
445
+ <br>
446
+
447
+ <br><br>
448
+
449
+
450
+
451
+ </body>
452
+
453
+ </html>
454
+
455
+
456
+
457
+ ```
458
+
459
+ uriage.php
460
+
461
+ ```php
462
+
95
463
  <?php
96
464
 
97
465
 
98
466
 
467
+ session_start();
468
+
469
+
470
+
471
+ //unset($_SESSION[ordertable]);
472
+
473
+ //print_r($_SESSION);
474
+
475
+
476
+
477
+ switch ($_POST[menu]) {
478
+
479
+ case 'もりそば':
480
+
481
+ $id = 0;
482
+
483
+ break;
484
+
485
+ case 'ざるそば':
486
+
487
+ $id = 1;
488
+
489
+ break;
490
+
491
+ case 'たぬきそば':
492
+
493
+ $id = 2;
494
+
495
+ break;
496
+
497
+ case 'きつねそば':
498
+
499
+ $id = 3;
500
+
501
+ break;
502
+
503
+ case 'かもせいろ':
504
+
505
+ $id = 4;
506
+
507
+ break;
508
+
509
+ case '天ぷらそば':
510
+
511
+ $id = 5;
512
+
513
+ break;
514
+
515
+ }
516
+
517
+
518
+
519
+ $ordertablen = "ordertable" .$_POST[table];
520
+
521
+
522
+
523
+ array_splice($_SESSION[$ordertablen],$id,1,0);
524
+
525
+
526
+
527
+ foreach ($_SESSION[$ordertablen] as $menu => $value) {
528
+
529
+ if ($value == 0) {
530
+
531
+ $i += 1;
532
+
533
+
534
+
535
+ if ($i==6) {
536
+
537
+ unset($_SESSION[$ordertablen]);
538
+
539
+ }
540
+
541
+ }
542
+
543
+ }
544
+
545
+
546
+
547
+ $name = $_POST[menu];
548
+
549
+ switch ($name) {
550
+
551
+ case 'もりそば':
552
+
553
+ $price = 600;
554
+
555
+ break;
556
+
557
+ case 'ざるそば':
558
+
559
+ $price = 700;
560
+
561
+ break;
562
+
563
+ case 'たぬきそば':
564
+
565
+ $price = 750;
566
+
567
+ break;
568
+
569
+ case 'きつねそば':
570
+
571
+ $price = 800;
572
+
573
+ break;
574
+
575
+ case 'かもせいろ':
576
+
577
+ $price = 900;
578
+
579
+ break;
580
+
581
+ case '天ぷらそば':
582
+
583
+ $price = 1300;
584
+
585
+ break;
586
+
587
+ }
588
+
589
+
590
+
99
591
  class DB
100
592
 
101
593
  {
@@ -108,9 +600,9 @@
108
600
 
109
601
  try {
110
602
 
111
- return new PDO ('mysql:host=nsc-jp.net;dbname=g1_db;charset=utf8mb4','g1','nscnl001');
603
+ return new PDO ('省略);
112
-
604
+
113
- //SQLinjection対策、けど最近はディフォルトらしい⇒ array(PDO::ATTR_EMULATE_PREPARES => false)
605
+ array(PDO::ATTR_EMULATE_PREPARES => false)
114
606
 
115
607
 
116
608
 
@@ -124,516 +616,82 @@
124
616
 
125
617
  }
126
618
 
127
-
128
-
129
619
  $dbcon = new DB;
130
620
 
131
-
621
+ if (ctype_digit($_POST[table])) {
132
-
622
+
623
+
624
+
133
- try {
625
+ try {
134
-
626
+
135
- $pdo = $dbcon->dbconnect();
627
+ $pdo = $dbcon->dbconnect();
136
-
628
+
137
- $stmt = $pdo->prepare('select * from menus');
629
+ $stmt = $pdo->prepare('insert into uriage (name,num,price)value(:name,:num,:price)');
630
+
138
-
631
+ $stmt -> bindParam(':name',$name);
632
+
633
+ $stmt -> bindParam(':num',$_POST['num']);
634
+
635
+ $stmt -> bindParam(':price',$price);
636
+
139
- $stmt->execute();
637
+ $stmt->execute();
140
-
638
+
639
+
640
+
141
- $menus=$stmt->fetchall();
641
+ echo "完了";
642
+
142
-
643
+ header( "Location: {{route('tyuubou')}}" ) ;
644
+
645
+
646
+
143
- } catch (\Exception $e) {
647
+ } catch (\Exception $e) {
144
-
648
+
145
- exit('ログイン失敗 データが該当しません。'.$e->getMessage());
649
+ exit('ログイン失敗 データが該当しません。'.$e->getMessage());
650
+
651
+ }
652
+
653
+
654
+
655
+ }else {
656
+
657
+ try {
658
+
659
+ $pdo = $dbcon->dbconnect();
660
+
661
+ $stmt = $pdo->prepare('insert into uriage (name,num,price,cname,demae)value(:name,:num,:price,:cname,1)');
662
+
663
+ $stmt -> bindParam(':name',$name);
664
+
665
+ $stmt -> bindParam(':num',$_POST['num']);
666
+
667
+ $stmt -> bindParam(':price',$price);
668
+
669
+ $stmt -> bindParam(':cname',$_POST[table]);
670
+
671
+ $stmt->execute();
672
+
673
+
674
+
675
+ echo "完了";
676
+
677
+ header( "Location: tyuubou2.php" ) ;
678
+
679
+
680
+
681
+ } catch (\Exception $e) {
682
+
683
+ exit('ログイン失敗 データが該当しません。'.$e->getMessage());
684
+
685
+ }
146
686
 
147
687
  }
148
688
 
149
689
 
150
690
 
151
- require 'tindex.php';
152
-
153
691
 
154
692
 
155
693
  ?>
156
694
 
157
695
 
158
696
 
159
-
160
-
161
697
  ```
162
-
163
- thanks.php
164
-
165
- ```php
166
-
167
-
168
-
169
- <?php if ($_POST['table'] == 0 ) : ?>
170
-
171
-
172
-
173
- <!DOCTYPE html>
174
-
175
- <html lang="ja" dir="ltr">
176
-
177
- <head>
178
-
179
- <meta charset="utf-8">
180
-
181
- <meta http-equiv=refresh content=5;URL='index.php'>
182
-
183
- <title></title>
184
-
185
- </head>
186
-
187
- <body>
188
-
189
-
190
-
191
-
192
-
193
- すみませんが、テーブル番号と人数の入力をお願い致します
194
-
195
-
196
-
197
-
198
-
199
- </body>
200
-
201
- </html>
202
-
203
-
204
-
205
- <?php else : //これじゃないとだめらしい。 ?>
206
-
207
-
208
-
209
- <!DOCTYPE html>
210
-
211
- <html lang="ja" dir="ltr">
212
-
213
- <head>
214
-
215
- <meta charset="utf-8">
216
-
217
- <meta http-equiv=refresh content=5;URL='index.php'>
218
-
219
- <title></title>
220
-
221
- </head>
222
-
223
- <body>
224
-
225
- 御注文ありがとうございます。
226
-
227
- <?php
228
-
229
-
230
-
231
- $n = $_POST['table'];
232
-
233
-
234
-
235
- ${"ordertable".$n} = $_POST ;
236
-
237
- session_start();
238
-
239
- $_SESSION['ordertable'.$n] = ${"ordertable".$n};
240
-
241
-
242
-
243
- ?>
244
-
245
-
246
-
247
- <?php endif; ?>
248
-
249
- </body>
250
-
251
- </html>
252
-
253
-
254
-
255
- ```
256
-
257
- tyuubou2.php
258
-
259
- ```php
260
-
261
-
262
-
263
-
264
-
265
- <html lang="ja" dir="ltr">
266
-
267
- <head>
268
-
269
- <meta charset="utf-8">
270
-
271
- <meta name="viewport" content="width=device-width">
272
-
273
- <link rel="stylesheet" href="style2.css">
274
-
275
- <title></title>
276
-
277
- </head>
278
-
279
- <body>
280
-
281
- <article class="">
282
-
283
- <header>
284
-
285
- <h1>オーダー</h1>
286
-
287
- </header>
288
-
289
-
290
-
291
-
292
-
293
- <?php session_start();
294
-
295
-
296
-
297
- foreach ($_SESSION as $ordertable => $orders) :?>
298
-
299
- <?php foreach ($orders as $menu => $num): ?>
300
-
301
-
302
-
303
- <?php if(!0==($num)){
304
-
305
- if ($menu !== 'table'&& $menu !=='hito') { ?>
306
-
307
-   <section class="">
308
-
309
-
310
-
311
-
312
-
313
- <div class="商品名">
314
-
315
- <?php echo $menu; ?>
316
-
317
- </div>
318
-
319
-
320
-
321
- <form class="" action="uriage.php" method="post">
322
-
323
- <a class="個数">個数
324
-
325
- <select class="select" >
326
-
327
- <option> <?php echo $num; ?></option>
328
-
329
- </select>
330
-
331
- </a>
332
-
333
- <input type="hidden" name="num" value="<?php echo $num; ?>">
334
-
335
- <input type="hidden" name="menu" value="<?php echo $menu; ?>">
336
-
337
- <input type="hidden" name="table" value="<?php echo $orders[table] ?>">
338
-
339
- <input type="hidden" name="hito" value="<?php echo $orders[hito] ?>">
340
-
341
- <input type="submit" value="完了">
342
-
343
- </form>
344
-
345
-
346
-
347
-
348
-
349
- <a class="右">テーブル番号
350
-
351
- <select class="select" >
352
-
353
-      <option><?php echo $orders[table] ?></option>
354
-
355
- </select>
356
-
357
- </a>
358
-
359
-
360
-
361
-
362
-
363
- <a class="人">人数
364
-
365
- <select class="select" name="hito" >?>
366
-
367
- <option><?php echo $orders[hito] ?></option>
368
-
369
- </select>
370
-
371
- </a>
372
-
373
-
374
-
375
-
376
-
377
- </section>
378
-
379
- <?php } }?>
380
-
381
- <?php endforeach;?>
382
-
383
- <?php endforeach;?>
384
-
385
-
386
-
387
- <br>
388
-
389
- <br><br>
390
-
391
-
392
-
393
- </body>
394
-
395
- </html>
396
-
397
-
398
-
399
- ```
400
-
401
- uriage.php
402
-
403
- ```php
404
-
405
- <?php
406
-
407
-
408
-
409
- session_start();
410
-
411
-
412
-
413
- //unset($_SESSION[ordertable]);
414
-
415
- //print_r($_SESSION);
416
-
417
-
418
-
419
- switch ($_POST[menu]) {
420
-
421
- case 'もりそば':
422
-
423
- $id = 0;
424
-
425
- break;
426
-
427
- case 'ざるそば':
428
-
429
- $id = 1;
430
-
431
- break;
432
-
433
- case 'たぬきそば':
434
-
435
- $id = 2;
436
-
437
- break;
438
-
439
- case 'きつねそば':
440
-
441
- $id = 3;
442
-
443
- break;
444
-
445
- case 'かもせいろ':
446
-
447
- $id = 4;
448
-
449
- break;
450
-
451
- case '天ぷらそば':
452
-
453
- $id = 5;
454
-
455
- break;
456
-
457
- }
458
-
459
-
460
-
461
- $ordertablen = "ordertable" .$_POST[table];
462
-
463
-
464
-
465
- array_splice($_SESSION[$ordertablen],$id,1,0);
466
-
467
-
468
-
469
- foreach ($_SESSION[$ordertablen] as $menu => $value) {
470
-
471
- if ($value == 0) {
472
-
473
- $i += 1;
474
-
475
-
476
-
477
- if ($i==6) {
478
-
479
- unset($_SESSION[$ordertablen]);
480
-
481
- }
482
-
483
- }
484
-
485
- }
486
-
487
-
488
-
489
- $name = $_POST[menu];
490
-
491
- switch ($name) {
492
-
493
- case 'もりそば':
494
-
495
- $price = 600;
496
-
497
- break;
498
-
499
- case 'ざるそば':
500
-
501
- $price = 700;
502
-
503
- break;
504
-
505
- case 'たぬきそば':
506
-
507
- $price = 750;
508
-
509
- break;
510
-
511
- case 'きつねそば':
512
-
513
- $price = 800;
514
-
515
- break;
516
-
517
- case 'かもせいろ':
518
-
519
- $price = 900;
520
-
521
- break;
522
-
523
- case '天ぷらそば':
524
-
525
- $price = 1300;
526
-
527
- break;
528
-
529
- }
530
-
531
-
532
-
533
- class DB
534
-
535
- {
536
-
537
-
538
-
539
- function dbconnect()
540
-
541
- {
542
-
543
- try {
544
-
545
- return new PDO ('省略);
546
-
547
- array(PDO::ATTR_EMULATE_PREPARES => false)
548
-
549
-
550
-
551
- } catch (\Exception $e) {
552
-
553
-      exit('データベース接続失敗。'.$e->getMessage());
554
-
555
- }
556
-
557
- }
558
-
559
- }
560
-
561
- $dbcon = new DB;
562
-
563
- if (ctype_digit($_POST[table])) {
564
-
565
-
566
-
567
- try {
568
-
569
- $pdo = $dbcon->dbconnect();
570
-
571
- $stmt = $pdo->prepare('insert into uriage (name,num,price)value(:name,:num,:price)');
572
-
573
- $stmt -> bindParam(':name',$name);
574
-
575
- $stmt -> bindParam(':num',$_POST['num']);
576
-
577
- $stmt -> bindParam(':price',$price);
578
-
579
- $stmt->execute();
580
-
581
-
582
-
583
- echo "完了";
584
-
585
- header( "Location: {{route('tyuubou')}}" ) ;
586
-
587
-
588
-
589
- } catch (\Exception $e) {
590
-
591
- exit('ログイン失敗 データが該当しません。'.$e->getMessage());
592
-
593
- }
594
-
595
-
596
-
597
- }else {
598
-
599
- try {
600
-
601
- $pdo = $dbcon->dbconnect();
602
-
603
- $stmt = $pdo->prepare('insert into uriage (name,num,price,cname,demae)value(:name,:num,:price,:cname,1)');
604
-
605
- $stmt -> bindParam(':name',$name);
606
-
607
- $stmt -> bindParam(':num',$_POST['num']);
608
-
609
- $stmt -> bindParam(':price',$price);
610
-
611
- $stmt -> bindParam(':cname',$_POST[table]);
612
-
613
- $stmt->execute();
614
-
615
-
616
-
617
- echo "完了";
618
-
619
- header( "Location: tyuubou2.php" ) ;
620
-
621
-
622
-
623
- } catch (\Exception $e) {
624
-
625
- exit('ログイン失敗 データが該当しません。'.$e->getMessage());
626
-
627
- }
628
-
629
- }
630
-
631
-
632
-
633
-
634
-
635
- ?>
636
-
637
-
638
-
639
- ```