質問するログイン新規登録

回答編集履歴

2

見直し

2019/05/17 01:18

投稿

退会済みユーザー
answer CHANGED
@@ -42,6 +42,9 @@
42
42
  としていますが、そもそも`$_REQUEST['res']`に値が入っているのかどうか、
43
43
  入っていないときにここが空欄になりますが、
44
44
  そのときの挙動として今回の問題が起きているような気がします。
45
+ **テーブルposts上でカラムreply_post_idはint型なので、
46
+ 空欄は許されません**ので。
47
+ せめてゼロを詰めるとか、NULLを許可するなどしないといけないのではないかと。
45
48
 
46
49
  もしもApache上でphpを実行しているなら、
47
50
  [PHPのエラー表示設定について - Qiita](https://qiita.com/shotets/items/3c95aef631b2c5eadae5#%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E5%AE%9A%E6%95%B0)

1

見直し

2019/05/17 01:18

投稿

退会済みユーザー
answer CHANGED
@@ -18,10 +18,30 @@
18
18
  その延長でもしも`empty($_POST['message'])`などと使い出すと(今回は良くても)いずれどこかで間違うかもしれません。
19
19
  `if (isset($_POST['message']))`みたいな書き方のほうが良いかと。
20
20
 
21
- dbconnect.php の中でどういうことをしてデータベース接続しているのか、
22
- ちゃんと接続できているのか、
23
- テーブル posts がどういう構造なのかなどひつひとつ確認しないと
21
+ テーブルposts構造を見る
22
+ Nullが許されない、かつ自動で値が詰められないカラムが
23
+ message
24
+ member_id
25
+ reply_post_id
26
+ の3つです。
27
+ これらを引き渡すために
28
+ $member['id'],
29
+ $_POST['message'],
30
+ $_POST['reply_post_id']
31
+ を渡していますが、ちゃんとこれらのパラメータを受信できているか検証しないと
24
- ズバな回答にならないです。
32
+ クエー実行時エラーになります。
33
+ ```php
34
+ if (isset($_POST['message']) && isset($_POST['reply_post_id'])) {
35
+ }
36
+ ```
37
+ くらいは最低限やらないといけません。
38
+ POST送信するフォーム上で、
39
+ ```
40
+ <input type="hidden" name="reply_post_id" value="<?php echo h($_REQUEST['res']); ?>" />
41
+ ```
42
+ としていますが、そもそも`$_REQUEST['res']`に値が入っているのかどうか、
43
+ 入っていないときにここが空欄になりますが、
44
+ そのときの挙動として今回の問題が起きているような気がします。
25
45
 
26
46
  もしもApache上でphpを実行しているなら、
27
47
  [PHPのエラー表示設定について - Qiita](https://qiita.com/shotets/items/3c95aef631b2c5eadae5#%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E5%AE%9A%E6%95%B0)