controller.phpでの緊急・例外エラー発生について

2019年8月27日 at 10:40

お世話様です。

controller.phpでの緊急・例外エラー発生について

バージョン8.4.4(Xserver)で、「360 設定されたフォームになにか問題があります(ID番号が設定されていません) (0)」エラーが多発しています。

とりあえず、該当位置に
358 if (!isset($_POST['qsID'])) {return;} // 2019/08/27暫定add
を追加して回避する様にしていますが、
これでは根本的な解決にならないと思いますので、エラーとなる原因について対応を教えていただきたいと考えています。

オリジナルcontroller.phpの、付近のコードは以下の様になっています。

357 //question set id
358 $qsID = intval($_POST['qsID']);
359 if ($qsID == 0) {
360 throw new Exception(t("Oops, something is wrong with the form you posted (it doesn't have a question set id)."));
361 }
362 $errors = [];


宜しくお願いします。

尚、エラーは、
日付:3/20、4/7、4/24、5/2、5/15、5/22、5/31、6/20、6/22、7/1(2回)、7/20、7/26、7/30、8/1、8/5、8/26の間隔で、都合17回発生しています。

"2019/08/05 15:51:00",EMERGENCY,例外,ゲスト,"Exception Occurred: /home/a-itc/a-itc.info/public_html/updates/concrete5-8.4.4_remote_updater/concrete/blocks/form/controller.php:360 設定されたフォームになにか問題があります(ID番号が設定されていません) (0)"

p.s. メールフォームの問題かと思いますが、
エラーが発生せず、長文のメールでも届く場合もあります。

特別な編集はしていません。
入力項目の追加、チェックボックスの追加、reCAPTCHAの追加位です。


よろしくお願いいたします。

p.s.2
エラーの起きているバージョン8.4.4と、
/home/a-itc/a-itc.info/public_html/updates/concrete5-8.4.4_remote_updater/concrete/blocks/form/controller.php と

バージョン8.5.1の C:\_MAMP\htdocs\concrete5\concrete\blocks\form\controller.php をWinMergeで比較してみました

比較対象が正しいかは不明ですが、ステートメントの違いが見受けられます。

(バージョン8.5.1にバージョンアップしたら解決するかもしれませんが・・・)

添付ファイル.pdfを追記します。


よろしくお願いいたします。

添付: controller.pdf
タグ:

Re: controller.phpでの緊急・例外エラー発生について

2019年9月4日 at 23:31
念のため、お尋ねします。

上記の内容を見て思ったのですが、
追記するコードの挿入位置、間違えていませんか?

追記するコードは、
オリジナルのコードでいう358行目よりも上に追記しましたか?
 

Re: controller.phpでの緊急・例外エラー発生について

2019年9月5日 at 8:39
DeaconBlues様
|ありがとうございます。

358 $qsID = intval($_POST['qsID']); の前に追加しています。
結果
359 $qsID = intval($_POST['qsID']); となっています。

でも、問題はこれでは無いんです。

|とりあえず、該当位置に358 if (!isset($_POST['qsID'])) {return;} // 2019/08/27暫定add
を追加して回避する様にしていますが、

|エラーが起こったら、
|Exception Occurred: /home/a-itc/a-itc.info/public_html/updates/concrete5-8.4.4_remote_updater/concrete/blocks/form/controller.php:360 設定されたフォームになにか問題があります(ID番号が設定されていません) (0)
を回避することができても、

根本的に「controller.php:360 設定されたフォームになにか問題があります」のフォームにどの様な問題があるのかわからないですし。

フォームには(入力項目の追加、チックボックス項目の追加、reCAPTCHAの追加位ですから)特別な変更を加えているつもりもないのに


どうして「設定されたフォームになにか問題があります」とうエラーになるかわからないからです。


ですので、
現在は 358 // if (!isset($_POST['qsID'])) {return;} // 2019/08/27暫定add とコメント化しようと考えています。


オリジナルcontroller.phpの、付近のコードは以下の様になっていました。
357 //question set id
358 $qsID = intval($_POST['qsID']);
359 if ($qsID == 0) {
360 throw new Exception(t("Oops, something is wrong with the form you posted (it doesn't have a question set id)."));
361 }
362 $errors = [];


現在は、
357 //question set id
358 if (!isset($_POST['qsID'])) {return;} // 2019/08/27暫定add
359 $qsID = intval($_POST['qsID']);
360 if ($qsID == 0) {
361 throw new Exception(t("Oops, something is wrong with the form you posted (it doesn't have a question set id)."));
362 }
363 $errors = [];

です。