質問編集履歴
3
$_POSTの使い方と、$dbhオブジェクトに連番を振らないように変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
>
|
6
|
-
|
7
|
-
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '47' for key 'mem_id'都道府県名が入力されていません。
|
1
|
+
自己解決しました。自己解決方法を投稿したのですが、404NOT FOUNDになってしまい、投稿できていなかったようです。解決方法としましては、$dbhのデータベースオブジェクトの変数名まで連番を振ってしまっていたことが原因でした。$_POSTの判定方法としては、最初にisset関数を使い変数の定義をチェックした後に、空文字かどうかを判定するだけでいけるようです。
|
2
|
+
|
3
|
+
大変おさわがせしまして申し訳ございません。修正済みコードを掲載しておきます。sanitizeが何をやっているかというと、htmlspecialcharsを実行して返しているだけです。
|
4
|
+
|
5
|
+
>array(3) { ["pref"]=> string(9) "千葉県" ["main_pic"]=> string(54) "62cu6sfozmznp0u6vs5kbaaefjbvid5s6bwk6cnh9bbczeehdy.JPG" ["pic1"]=> string(54) "g5a55yhh8uglma6io4x7zymaoetbl3y6ip2kt3jno8mtf48cfd.JPG" }
|
8
6
|
|
9
7
|
|
10
8
|
|
@@ -204,7 +202,7 @@
|
|
204
202
|
|
205
203
|
~省略(画像生成処理)~
|
206
204
|
|
207
|
-
|
205
|
+
|
208
206
|
|
209
207
|
if($appeal){
|
210
208
|
|
@@ -318,11 +316,17 @@
|
|
318
316
|
|
319
317
|
|
320
318
|
|
319
|
+
if (isset($_POST['pref'])) {
|
320
|
+
|
321
|
+
if ($_POST['pref'] != "") {
|
322
|
+
|
323
|
+
|
324
|
+
|
321
325
|
$sql1='INSERT INTO mst_pref (mem_id,pref) VALUES (?,?)';
|
322
326
|
|
323
327
|
|
324
328
|
|
325
|
-
$stmh1=$dbh
|
329
|
+
$stmh1=$dbh->prepare($sql1);
|
326
330
|
|
327
331
|
$stmh1 -> bindValue(1, $id, PDO::PARAM_INT);
|
328
332
|
|
@@ -332,13 +336,25 @@
|
|
332
336
|
|
333
337
|
$stmh1->execute();
|
334
338
|
|
339
|
+
$dbh1=null;
|
340
|
+
|
341
|
+
}
|
342
|
+
|
343
|
+
}
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
if (isset($_POST['appeal'])) {
|
348
|
+
|
349
|
+
if ($_POST['appeal'] != "") {
|
350
|
+
|
335
351
|
|
336
352
|
|
337
353
|
$sql2='INSERT INTO mst_appeal (mem_id,appeal) VALUES (?,?)';
|
338
354
|
|
339
355
|
|
340
356
|
|
341
|
-
$stmh2=$dbh
|
357
|
+
$stmh2=$dbh->prepare($sql2);
|
342
358
|
|
343
359
|
$stmh2 -> bindValue(1, $id, PDO::PARAM_INT);
|
344
360
|
|
@@ -350,11 +366,21 @@
|
|
350
366
|
|
351
367
|
|
352
368
|
|
369
|
+
}
|
370
|
+
|
371
|
+
}
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
if (isset($_POST['main_pic'])) {
|
376
|
+
|
377
|
+
if ($_POST['main_pic'] != "") {
|
378
|
+
|
353
379
|
$sql3='INSERT INTO mst_img (mem_id,image,img_flg) VALUES (?,?,?)';
|
354
380
|
|
355
381
|
|
356
382
|
|
357
|
-
$stmh3=$dbh
|
383
|
+
$stmh3=$dbh->prepare($sql3);
|
358
384
|
|
359
385
|
$stmh3 -> bindValue(1, $id, PDO::PARAM_INT);
|
360
386
|
|
@@ -368,11 +394,21 @@
|
|
368
394
|
|
369
395
|
|
370
396
|
|
397
|
+
}
|
398
|
+
|
399
|
+
}
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
if (isset($_POST['pic1'])) {
|
404
|
+
|
405
|
+
if ($_POST['pic1'] != "") {
|
406
|
+
|
371
407
|
$sql4='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
372
408
|
|
373
409
|
|
374
410
|
|
375
|
-
$stmh4=$dbh
|
411
|
+
$stmh4=$dbh->prepare($sql4);
|
376
412
|
|
377
413
|
$stmh4 -> bindValue(1, $id, PDO::PARAM_INT);
|
378
414
|
|
@@ -382,11 +418,21 @@
|
|
382
418
|
|
383
419
|
|
384
420
|
|
421
|
+
}
|
422
|
+
|
423
|
+
}
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
if (isset($_POST['pic2'])) {
|
428
|
+
|
429
|
+
if ($_POST['pic2'] != "") {
|
430
|
+
|
385
431
|
$sql5='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
386
432
|
|
387
433
|
|
388
434
|
|
389
|
-
$stmh5=$dbh
|
435
|
+
$stmh5=$dbh->prepare($sql5);
|
390
436
|
|
391
437
|
$stmh5 -> bindValue(1, $id, PDO::PARAM_INT);
|
392
438
|
|
@@ -398,11 +444,21 @@
|
|
398
444
|
|
399
445
|
|
400
446
|
|
447
|
+
}
|
448
|
+
|
449
|
+
}
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
if (isset($_POST['pic3'])) {
|
454
|
+
|
455
|
+
if ($_POST['pic3'] != "") {
|
456
|
+
|
401
457
|
$sql6='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
402
458
|
|
403
459
|
|
404
460
|
|
405
|
-
$stmh6=$dbh
|
461
|
+
$stmh6=$dbh->prepare($sql6);
|
406
462
|
|
407
463
|
$stmh6 -> bindValue(1, $id, PDO::PARAM_INT);
|
408
464
|
|
@@ -414,7 +470,9 @@
|
|
414
470
|
|
415
471
|
$dbh=null;
|
416
472
|
|
417
|
-
|
473
|
+
}
|
474
|
+
|
475
|
+
}
|
418
476
|
|
419
477
|
?>
|
420
478
|
|
2
事態の進捗、issetなどを使用してみた
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
$_POST変数から値
|
1
|
+
$_POST変数からの正しい値の取得方法について
|
test
CHANGED
File without changes
|
1
プレースホルダの部分をbindValueを使うように変更してみました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
xampp3.2.4、php7.4.11の環境です。$_POST配列の使い方についての質問です。
|
1
|
+
xampp3.2.4、php7.4.11の環境です。$_POST配列の使い方についての質問です。勘違いしていたので修正しています。
|
2
|
+
|
2
|
-
|
3
|
+
具体的には値をPOSTした際に、遷移後の画面にて$_POSTに値がある場合とそうでない場合を、正しく判定する方法がわかりません。(nullや空文字についてよくわかっていないためだと思い、いろいろ調べております)
|
4
|
+
|
3
|
-
> array(3) { ["pref"]=> string(9) "秋田県" ["main_pic"]=> string(54) "fbpsjgbr5okn0fa10dr54njukgpr7dgmrbwn6ryylwl2irjdap.JPG" ["appeal"]=> string(1
|
5
|
+
> array(3) { ["pref"]=> string(9) "秋田県" ["main_pic"]=> string(54) "fbpsjgbr5okn0fa10dr54njukgpr7dgmrbwn6ryylwl2irjdap.JPG" ["appeal"]=> string(15) "あいうえお" } 不正な操作です0
|
4
|
-
|
6
|
+
|
5
|
-
SQLSTATE[
|
7
|
+
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '47' for key 'mem_id'都道府県名が入力されていません。
|
6
8
|
|
7
9
|
|
8
10
|
|
@@ -316,289 +318,97 @@
|
|
316
318
|
|
317
319
|
|
318
320
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
$sql='INSERT INTO mst_p
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
$stmh=$dbh->prepare($sql);
|
340
|
-
|
341
|
-
$da
|
342
|
-
|
343
|
-
$da
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
$stmh->execute(
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
e
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
t
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
$s
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
$stm
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
$
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
$stmh->
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
exit();
|
412
|
-
|
413
|
-
}
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
}
|
418
|
-
|
419
|
-
//main_picの処理
|
420
|
-
|
421
|
-
if(isset($_POST['main_pic']))
|
422
|
-
|
423
|
-
{
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
try
|
428
|
-
|
429
|
-
{
|
430
|
-
|
431
|
-
$sql='INSERT INTO mst_img (mem_id,image,img_flg) VALUES (?,?,?)';
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
$stmh=$dbh->prepare($sql);
|
436
|
-
|
437
|
-
$data[]=$id;
|
438
|
-
|
439
|
-
$data[]=$_POST['main_pic'];
|
440
|
-
|
441
|
-
$data[]='1';
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
$stmh->execute($data);
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
}
|
450
|
-
|
451
|
-
catch(PDOException $e)
|
452
|
-
|
453
|
-
{
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
print '不正な操作です2<br />';
|
458
|
-
|
459
|
-
print $e->getMessage();
|
460
|
-
|
461
|
-
print 'メイン画像登録時にエラーが発生しました。<br />';
|
462
|
-
|
463
|
-
print '<input type="button" onclick="history.back()" value="戻る">';
|
464
|
-
|
465
|
-
exit();
|
466
|
-
|
467
|
-
}
|
468
|
-
|
469
|
-
}
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
//画像1の処理
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
if(isset($_POST['pic1']))
|
478
|
-
|
479
|
-
{
|
480
|
-
|
481
|
-
try
|
482
|
-
|
483
|
-
{
|
484
|
-
|
485
|
-
$sql='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
$stmh=$dbh->prepare($sql);
|
490
|
-
|
491
|
-
$data[]=$id;
|
492
|
-
|
493
|
-
$data[]=$_POST['pic1'];
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
$stmh->execute($data);
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
}
|
502
|
-
|
503
|
-
catch(PDOException $e)
|
504
|
-
|
505
|
-
{
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
print '不正な操作です3<br />';
|
510
|
-
|
511
|
-
print $e->getMessage();
|
512
|
-
|
513
|
-
print '画像1登録時にエラーが発生しました。<br />';
|
514
|
-
|
515
|
-
print '<input type="button" onclick="history.back()" value="戻る">';
|
516
|
-
|
517
|
-
exit();
|
518
|
-
|
519
|
-
}
|
520
|
-
|
521
|
-
}
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
//画像2の処理
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
if(isset($_POST['pic2']))
|
530
|
-
|
531
|
-
{
|
532
|
-
|
533
|
-
try
|
534
|
-
|
535
|
-
{
|
536
|
-
|
537
|
-
$sql='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
$stmh=$dbh->prepare($sql);
|
542
|
-
|
543
|
-
$data[]=$id;
|
544
|
-
|
545
|
-
$data[]=$_POST['pic2'];
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
$stmh->execute($data);
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
}
|
554
|
-
|
555
|
-
catch(PDOException $e)
|
556
|
-
|
557
|
-
{
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
print '不正な操作です4<br />';
|
562
|
-
|
563
|
-
print $e->getMessage();
|
564
|
-
|
565
|
-
print '画像2登録時にエラーが発生しました。<br />';
|
566
|
-
|
567
|
-
print '<input type="button" onclick="history.back()" value="戻る">';
|
568
|
-
|
569
|
-
exit();
|
570
|
-
|
571
|
-
}
|
572
|
-
|
573
|
-
}
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
//画像3の処理
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
if(isset($_POST['pic']))
|
582
|
-
|
583
|
-
{
|
584
|
-
|
585
|
-
try
|
586
|
-
|
587
|
-
{
|
588
|
-
|
589
|
-
$sql='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
$stmh=$dbh->prepare($sql);
|
594
|
-
|
595
|
-
$data[]=$id;
|
596
|
-
|
597
|
-
$data[]=$_POST['pic3'];
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
$stmh->execute($data);
|
321
|
+
$sql1='INSERT INTO mst_pref (mem_id,pref) VALUES (?,?)';
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
$stmh1=$dbh1->prepare($sql1);
|
326
|
+
|
327
|
+
$stmh1 -> bindValue(1, $id, PDO::PARAM_INT);
|
328
|
+
|
329
|
+
$stmh1 -> bindValue(2, $_POST['pref'], PDO::PARAM_STR);
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
$stmh1->execute();
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
$sql2='INSERT INTO mst_appeal (mem_id,appeal) VALUES (?,?)';
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
$stmh2=$dbh2->prepare($sql2);
|
342
|
+
|
343
|
+
$stmh2 -> bindValue(1, $id, PDO::PARAM_INT);
|
344
|
+
|
345
|
+
$stmh2 -> bindValue(2, $_POST['appeal'], PDO::PARAM_STR);
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
$stmh2->execute();
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
$sql3='INSERT INTO mst_img (mem_id,image,img_flg) VALUES (?,?,?)';
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
$stmh3=$dbh3->prepare($sql3);
|
358
|
+
|
359
|
+
$stmh3 -> bindValue(1, $id, PDO::PARAM_INT);
|
360
|
+
|
361
|
+
$stmh3 -> bindValue(2, $_POST['main_pic'], PDO::PARAM_STR);
|
362
|
+
|
363
|
+
$stmh3 -> bindValue(3, '1', PDO::PARAM_INT);
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
$stmh3->execute();
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
$sql4='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
$stmh4=$dbh4->prepare($sql4);
|
376
|
+
|
377
|
+
$stmh4 -> bindValue(1, $id, PDO::PARAM_INT);
|
378
|
+
|
379
|
+
$stmh4 -> bindValue(2, $_POST['pic1'], PDO::PARAM_STR);
|
380
|
+
|
381
|
+
$stmh4->execute();
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
$sql5='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
$stmh5=$dbh5->prepare($sql5);
|
390
|
+
|
391
|
+
$stmh5 -> bindValue(1, $id, PDO::PARAM_INT);
|
392
|
+
|
393
|
+
$stmh5 -> bindValue(2, $_POST['pic2'], PDO::PARAM_STR);
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
$stmh5->execute();
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
$sql6='INSERT INTO mst_img (mem_id,image) VALUES (?,?)';
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
$stmh6=$dbh6->prepare($sql6);
|
406
|
+
|
407
|
+
$stmh6 -> bindValue(1, $id, PDO::PARAM_INT);
|
408
|
+
|
409
|
+
$stmh6 -> bindValue(2, $_POST['pic3'], PDO::PARAM_STR);
|
410
|
+
|
411
|
+
$stmh6->execute();
|
602
412
|
|
603
413
|
|
604
414
|
|
@@ -606,36 +416,10 @@
|
|
606
416
|
|
607
417
|
|
608
418
|
|
609
|
-
}
|
610
|
-
|
611
|
-
catch(PDOException $e)
|
612
|
-
|
613
|
-
{
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
print '不正な操作です5<br />';
|
618
|
-
|
619
|
-
print $e->getMessage();
|
620
|
-
|
621
|
-
print '画像3登録時にエラーが発生しました。<br />';
|
622
|
-
|
623
|
-
print '<input type="button" onclick="history.back()" value="戻る">';
|
624
|
-
|
625
|
-
exit();
|
626
|
-
|
627
|
-
}
|
628
|
-
|
629
|
-
}
|
630
|
-
|
631
|
-
print 'プロフィールを登録しました。<br />';
|
632
|
-
|
633
419
|
?>
|
634
420
|
|
635
421
|
</body>
|
636
422
|
|
637
423
|
</html>
|
638
424
|
|
639
|
-
コード
|
640
|
-
|
641
425
|
```
|