- このトピックには12件の返信、2人の参加者があり、最後に
徳本 奈穂子により17時間、 33分前に更新されました。
-
投稿者投稿
-
2025年2月20日 5:32 PM #144166
【お使いの Snow Monkey のバージョン】28.0.4
【お使いの Snow Monkey Blocks のバージョン】
【お使いの Snow Monkey Editor のバージョン】
【お使いの PHP のバージョン】PHP8.2.22
【お使いのブラウザ】Chrome
【当該サイトのURL】### 発生している問題
Snow Monkey Forms(10.0.0)に必須項目が未入力の時に、
ーーーーー
予期しない問題が発生しました。 後でもう一度やり直すか、他の方法で管理者に連絡してください。
(status: SyntaxError: Unexpected token ‘<‘, “<br /> <b>”… is not valid JSON)ーーーーー
というエラーが出る。
### 試したこと
Snow Monkey Formsの不具合報告はこちらでよかったでしょうか・・・?
上述の通りでして、何も試せていません。
♥ 0いいねをした人: 居ません2025年2月20日 6:01 PM #144167サーバーのエラーログに詳細なエラーがでていると思うので、それを見せてもらうことは可能でしょうか?
♥ 0いいねをした人: 居ません2025年2月20日 6:18 PM #144168一応このサイトと、テストサイトを立てて2つの環境で試してみたのですが、エラーは確認できませんでした。
なのでフックでカスタマイズしていると発生するとか、何らかの設定やその組み合わせで発生するのかもしれません。
もし PHP でカスタマイズをされているようであればどのようなカスタマイズをしているのかも教えてください!♥ 0いいねをした人: 居ません2025年2月20日 10:27 PM #144169サーバーのエラーログは以下の通りでした。何かわかりそうでしょうか?(ドメイン名伏せています。)
[Thu Feb 20 22:17:54.119658 2025] [proxy_fcgi:error] [pid 1183104:tid 140554430596864] [client 119.24.85.212:58062] AH01071: Got error ‘PHP message: PHP Warning: Undefined array key 0 in /home/xs129397/xxx.or.jp/public_html/wp/wp-content/plugins/snow-monkey-forms/App/Controller/Invalid.php on line 31’, referer: https://xxx.or.jp/volunteer_application_form/
このサイト上複数のフォームを利用しているのですが、エラーにならないフォームとなるフォームがあります。
エラーにならないフォームはデフォルトの名前とメールアドレス、メッセージのみの項目で、エラーになるフォームはチェックボックスなど他の項目も追加しています。サイトのカスタマイズはすべてmy snow monkeyを通してしているのですが、my snow monkeyのフォルダをリネームして実行しても同じ結果でした。必要でしたらmy snow monkeyのソースも貼ります。
お手数おかけしますがよろしくお願いいたします。m(_ _)m
♥ 0いいねをした人: 居ません2025年2月21日 7:23 AM #144171ありがとうございます!!
エラーにならないフォームはデフォルトの名前とメールアドレス、メッセージのみの項目で、エラーになるフォームはチェックボックスなど他の項目も追加しています。
となるとカスタマイズではなくてくて、設定によって不具合が発生するようになってしまっているのかもしれません。
フォームを直接確認したいのですが、DM でも構いませんので、ページの URL を教えていただくことは可能でしょうか?♥ 0いいねをした人: 居ません2025年2月21日 7:40 AM #144172あ!ちょっと怪しいところをみつけたので、可能であれば下記も試してみてください(無理そうなら大丈夫です)。
snow-monkey-forms/App/Model/Validator.php
のprotected function _set_validation_map( Setting $setting ) { $validation_map = array(); foreach ( $setting->get_controls( false ) as $name => $_controls ) { foreach ( $_controls as $control ) { $validations = $control->get_property( 'validations' ); if ( ! $validations ) { continue; } $validation_map[ $name ][] = (array) $validations; } } return $validation_map; }
を
protected function _set_validation_map( Setting $setting ) { $validation_map = array(); foreach ( $setting->get_controls( false ) as $name => $_controls ) { foreach ( $_controls as $i => $control ) { // ← この行を変更 $validations = $control->get_property( 'validations' ); if ( ! $validations ) { continue; } $validation_map[ $name ][ $i ] = (array) $validations; // ← この行を変更 } } return $validation_map; }
に変更。
♥ 0いいねをした人: 居ません2025年2月21日 7:44 AM #144173ありがとうございます!
今試してみます!
♥ 0いいねをした人: 居ません2025年2月21日 7:48 AM #1441742025年2月21日 7:48 AM #1441752025年2月21日 9:07 AM #144178はっきりした原因はまだわからないのですが、下記の変更でエラーはなくなりそうです。一度試してみてください!
snow-monkey-forms/App/Controller/Invalid.php
のprotected function set_controls() { $controls = array(); $setting_controls = $this->setting->get_controls( false ); foreach ( $setting_controls as $name => $_controls ) { $value = $this->responser->get( $name ); $error_messages = $this->validator->get_error_messages( $name ); foreach ( $_controls as $i => $control ) { $control->save( $value ); $controls[ $name ][ $i ] = $error_messages[ $i ] ? $control->invalid( implode( ' ', $error_messages[ $i ] ) ) : $control->input(); } } return $controls; }
を
protected function set_controls() { $controls = array(); $setting_controls = $this->setting->get_controls( false ); foreach ( $setting_controls as $name => $_controls ) { $value = $this->responser->get( $name ); $error_messages = $this->validator->get_error_messages( $name ); foreach ( $_controls as $i => $control ) { $control->save( $value ); $error_message = $error_messages[ $i ] ?? false; $controls[ $name ][ $i ] = $error_message ? $control->invalid( implode( ' ', $error_message ) ) : $control->input(); } } return $controls; }
に変更。
♥ 0いいねをした人: 居ません2025年2月21日 9:34 AM #144182ありがとうございます!
エラー解消しました!
当面このまま運用しても大丈夫でしょうか?
運用待った方がよければ止めておきます。
♥ 0いいねをした人: 居ません2025年2月21日 9:44 AM #1441842025年2月21日 9:46 AM #144185 -
投稿者投稿
- トピック「Snow Monkey Formsの必須項目未入力時にエラーが出る。」には新しい返信をつけることはできません。