質問編集履歴

4

修正

2019/05/05 00:18

投稿

toll_tree
toll_tree

スコア199

test CHANGED
File without changes
test CHANGED
@@ -270,7 +270,9 @@
270
270
 
271
271
  追記です。
272
272
 
273
- 以下はセッション変数へ成功メッセージを格納したコードです
273
+ 以下は自身へのリダイレクトを行った際のセッション変数へ成功メッセージを格納したコードです
274
+
275
+
274
276
 
275
277
  ```php
276
278
 

3

コード追記

2019/05/05 00:18

投稿

toll_tree
toll_tree

スコア199

test CHANGED
File without changes
test CHANGED
@@ -267,3 +267,277 @@
267
267
  ご助言頂ければ幸いです。
268
268
 
269
269
  よろしくお願いします。
270
+
271
+ 追記です。
272
+
273
+ 以下はセッション変数へ成功メッセージを格納したコードです
274
+
275
+ ```php
276
+
277
+ <?php
278
+
279
+ session_start();
280
+
281
+ include 'shop_class.php';
282
+
283
+
284
+
285
+ if(!isset($_SESSION['id'])){
286
+
287
+ header('Location:login.php');
288
+
289
+ }
290
+
291
+
292
+
293
+ $shop = new Shop('mysql:host=localhost;dbname=ec_website','root','12345');
294
+
295
+ $product_list = $shop->line_up_product();
296
+
297
+ $stock_list =$shop->display_quantity();
298
+
299
+ $success_msg = '';
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+ if($_POST){
308
+
309
+ // var_dump($_POST);
310
+
311
+ // exit();
312
+
313
+ $user_id = intval($_SESSION['id']);
314
+
315
+ $product_name = $_POST['name'];
316
+
317
+
318
+
319
+ $img = $_POST['img'];
320
+
321
+ $price = $_POST['price'];
322
+
323
+ $product_id = intval($_POST['product_id']);
324
+
325
+
326
+
327
+ var_dump($product_id);
328
+
329
+ //exit();
330
+
331
+
332
+
333
+ $item_check = $shop->cart_check($user_id,$product_id);
334
+
335
+ //var_dump($item_check);
336
+
337
+ unset($_SESSION['success_msg']);
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+ if(!$item_check){
346
+
347
+ // try{
348
+
349
+ $shop->add_select_item($user_id,$product_id);
350
+
351
+ $shop->decrease_stock($product_id);
352
+
353
+ // }catch(PDOException $e){
354
+
355
+ // echo $e->getMessage();
356
+
357
+ // }
358
+
359
+
360
+
361
+ echo __LINE__;
362
+
363
+
364
+
365
+ $_SESSION['success_msg'] = 'カートに登録しました。';
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+ header('Location:top.php');
374
+
375
+ //exit();
376
+
377
+
378
+
379
+ }else{
380
+
381
+ $shop->update($product_id);
382
+
383
+ $shop->decrease_stock($product_id);
384
+
385
+ echo __LINE__ . PHP_EOL;
386
+
387
+ $success_msg = 'カートに登録しました。';
388
+
389
+ $_SESSION['success_msg'] = $success_msg;
390
+
391
+ header('Location:top.php');
392
+
393
+
394
+
395
+ //exit();
396
+
397
+ }
398
+
399
+
400
+
401
+ }
402
+
403
+
404
+
405
+ ?>
406
+
407
+
408
+
409
+
410
+
411
+ <!DOCTYPE html>
412
+
413
+ <html lang="ja">
414
+
415
+ <head>
416
+
417
+ <meta charset="UTF-8">
418
+
419
+ <link type="text/css" rel="stylesheet" href="./css/top.css">
420
+
421
+ <title>トップページ</title>
422
+
423
+ </head>
424
+
425
+ <body>
426
+
427
+ <header class="header_box">
428
+
429
+ <a href="top.php" class="top_logo">
430
+
431
+ <img class="logo" src="./images/logo.png" alt="CodeShop">
432
+
433
+ </a>
434
+
435
+
436
+
437
+ <p class="user_name">
438
+
439
+ ユーザー名:<?php echo $_COOKIE['name']; ?>
440
+
441
+ </p>
442
+
443
+ <a href="cart.php">
444
+
445
+ <img src="./images/cart.png">
446
+
447
+ </a>
448
+
449
+ <a href="logout.php" class="logout">
450
+
451
+ ログアウト
452
+
453
+ </a>
454
+
455
+ </header>
456
+
457
+
458
+
459
+ <p><?php if(isset($_SESSION['success_msg'])){ echo $_SESSION['success_msg'];} ?></p>
460
+
461
+ <div class="content">
462
+
463
+
464
+
465
+ <?php for($i = 0; $i < count($product_list); $i++): ?>
466
+
467
+ <?php
468
+
469
+ $list = $product_list[$i];
470
+
471
+ $stock = $stock_list[$i];
472
+
473
+ // var_dump($list['id']);
474
+
475
+
476
+
477
+ ?>
478
+
479
+
480
+
481
+ <div class="content_list">
482
+
483
+ <img src="<?=$list['img']?>" width="300px" height="300px">
484
+
485
+ <div class="wrap_content">
486
+
487
+
488
+
489
+ <p class="item_name"><?=$list['name']?></p>
490
+
491
+ <!-- <?php var_dump($list['item_id']); ?> -->
492
+
493
+
494
+
495
+ <p>¥<?=$list['price']?></p>
496
+
497
+ </div>
498
+
499
+ <?php if($stock['stock'] > 0): ?>
500
+
501
+ <form action="top.php" method="post">
502
+
503
+ <input type="submit" value="カートに入れる" class="cart_send">
504
+
505
+ <input type="hidden" name="name" value="<?=$list['name']?>">
506
+
507
+ <input type="hidden" name="img" value="<?=$list['img']?>">
508
+
509
+ <input type="hidden" name="price" value="<?=$list['price']?>">
510
+
511
+ <input type="hidden" name="product_id" value="<?=$list['id']?>">
512
+
513
+ <input type="hidden" name="user_id" value="<?=$_SESSION['id']?>">
514
+
515
+ <?php else: ?>
516
+
517
+ <p class="err_msg"> 売り切れ</p>
518
+
519
+ <?php endif;?>
520
+
521
+ </form>
522
+
523
+ </div>
524
+
525
+
526
+
527
+ <?php endfor;?>
528
+
529
+
530
+
531
+ </div>
532
+
533
+
534
+
535
+
536
+
537
+ </body>
538
+
539
+ </html>
540
+
541
+
542
+
543
+ ```

2

タグ追加

2019/05/05 00:07

投稿

toll_tree
toll_tree

スコア199

test CHANGED
File without changes
test CHANGED
File without changes

1

本文修正

2019/05/04 09:33

投稿

toll_tree
toll_tree

スコア199

test CHANGED
File without changes
test CHANGED
@@ -260,7 +260,7 @@
260
260
 
261
261
  ![イメージ説明](0f25ae0dad9d8232840341eb47588091.png)
262
262
 
263
- カートに入れるボタンを押す(POST)すると、「if($_POST){」移行の処理がなされ、データベース接続処理などを行っているのですが、F5の更新により、post処理が2重にされないため、データベース接続処理が終わった後、「header('Location:top.php');」を行っているのでが、headerで飛ばしてしまうと、成功を表示する為の$success_msgの値がリセットされてしまいます。
263
+ カートに入れるボタンを押す(POST)すると、「if($_POST){」移行の処理がなされ、データベース接続処理などを行っているのですが、F5の更新により、post処理が2重にされないため、データベース接続処理が終わった後、「header('Location:top.php');」を行っておりま。しかしheaderで飛ばしてしまうと、成功を表示する為の$success_msgの値がリセットされてしまい、成功メッセージが表示できせん
264
264
 
265
265
  上記の問題を解決するには、どうすれば良いでしょうか?
266
266