Snow Monkey Formsの必須項目未入力時にエラーが出る。

1
いいねをした人:
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • 投稿者
    投稿
  • #144166
    徳本 奈穂子
    参加者
    35

    【お使いの 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
    いいねをした人: 居ません
    #144167
    アバター画像キタジマ タカシ
    参加者
    2528

    サーバーのエラーログに詳細なエラーがでていると思うので、それを見せてもらうことは可能でしょうか?

    0
    いいねをした人: 居ません
    #144168
    アバター画像キタジマ タカシ
    参加者
    2528

    一応このサイトと、テストサイトを立てて2つの環境で試してみたのですが、エラーは確認できませんでした。

    なのでフックでカスタマイズしていると発生するとか、何らかの設定やその組み合わせで発生するのかもしれません。
    もし PHP でカスタマイズをされているようであればどのようなカスタマイズをしているのかも教えてください!

    0
    いいねをした人: 居ません
    #144169
    徳本 奈穂子
    参加者
    35

    サーバーのエラーログは以下の通りでした。何かわかりそうでしょうか?(ドメイン名伏せています。)

    [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
    いいねをした人: 居ません
    #144171
    アバター画像キタジマ タカシ
    参加者
    2528

    ありがとうございます!!

    エラーにならないフォームはデフォルトの名前とメールアドレス、メッセージのみの項目で、エラーになるフォームはチェックボックスなど他の項目も追加しています。

    となるとカスタマイズではなくてくて、設定によって不具合が発生するようになってしまっているのかもしれません。
    フォームを直接確認したいのですが、DM でも構いませんので、ページの URL を教えていただくことは可能でしょうか?

    0
    いいねをした人: 居ません
    #144172
    アバター画像キタジマ タカシ
    参加者
    2528

    あ!ちょっと怪しいところをみつけたので、可能であれば下記も試してみてください(無理そうなら大丈夫です)。

    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
    いいねをした人: 居ません
    #144173
    徳本 奈穂子
    参加者
    35

    ありがとうございます!

    今試してみます!

    0
    いいねをした人: 居ません
    #144174
    徳本 奈穂子
    参加者
    35

    同じエラーが出るようです・・・

    予期しない問題が発生しました。 後でもう一度やり直すか、他の方法で管理者に連絡してください。
    (status: SyntaxError: Unexpected token ‘<‘, “<br /> <b>”… is not valid JSON

    1
    いいねをした人:
    #144175
    徳本 奈穂子
    参加者
    35

    XでDMさせていただきました。

    1
    いいねをした人:
    #144178
    アバター画像キタジマ タカシ
    参加者
    2528

    はっきりした原因はまだわからないのですが、下記の変更でエラーはなくなりそうです。一度試してみてください!

    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
    いいねをした人: 居ません
    #144182
    徳本 奈穂子
    参加者
    35

    ありがとうございます!

    エラー解消しました!

    当面このまま運用しても大丈夫でしょうか?

    運用待った方がよければ止めておきます。

    0
    いいねをした人: 居ません
    #144184
    アバター画像キタジマ タカシ
    参加者
    2528

    おー!良かったです。

    多分 PHP のバージョンとかエラーを出力する設定になっているかとか、そういう関連で発生する/しないがあるような気がします。

    今回の修正はトリッキーなことをしたわけではなくて丁寧に書き直したという感じなので、そのままで問題ないです!
    同じ変更を入れたものをリリースするので、後でアップデートしてください。

    2
    いいねをした人:
    #144185
    徳本 奈穂子
    参加者
    35

    素早い対応ありがとうございました。

    助かりました!

    アップデート承知しました。

    2
    いいねをした人:
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • トピック「Snow Monkey Formsの必須項目未入力時にエラーが出る。」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。