教えてください。メール送信テストでエラー

2018年7月20日 at 21:28

お世話様です。

テーマ:stuccoでサイト構築中です。
一度、サイトを公開してメール送信を試みたのですが、

予期せぬエラーが発生しました。」となり

メッセージが
count(): Parameter must be an array or an object that implements Countable

と表示されフリーズしてしまいました。

この時のURL表示は
「https://ドメイン/contact/submit_form/533#formblock533」となっています。

どの様に対処すればよいかご教示願います。

タグ:

Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 8:31
stuccoの最新版では解消されているはずなのですが
現在のstuccoのバージョンを教えていただけますか?
[管理画面-> concrete5を拡張]画面から確認できます。
 

Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 9:00
aclissさま

おはようございます。
お世話様です。

stuccoのバージョンは2.1.5(6/23時点)です。

ただ、
Stuccoのインストールでの
サイトのコンテンツを入れ替えるオプションの「◎はい」を選んだ場合、
途中でフリーズしてしまったため

nipperさまのアドバイスで、
php7.2が原因の可能性が高いので、インストール済みのテーマの下記の部分を修正してみていただけませんか?

theme_stucco -> blocks -> autonav -> templates -> stucco_global_nav_animenu -> view.php

view.php の56行目『$niCountSub = count($navItems->hasSubmenu);』をコメントアウト、もしくは削除してみてください

をサポート戴き

(view.php の56行目『$niCountSub = count($navItems->hasSubmenu);』をコメントアウト)で問題なくインストールできました。
 

Re: Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 9:47
stucco ではない他のアドオンなどが影響している可能性もあります。
また、設定などにもよりますので一概に言えないです。

まず、一つ確認方法なのですが、
[管理画面→レポート→ログ]
[チャンネル]を「例外」にすると、エラーのログが表示されると思うのですが、
そちらの内容を教えていただけないでしょうか?
 

Re: Re: Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 10:26
aclissさま

ありがとうございます。
ログは、


↓2018/07/21再テストしました。
2018/07/21 10:20:50 例外 jun Exception Occurred: /home/a-itc/a-itc.info/public_html/application/blocks/form/controller.php:420 count(): Parameter must be an array or an object that implements Countable (2)

2018/07/20 21:57:35 例外 ゲスト Exception Occurred: /home/a-itc/a-itc.info/public_html/application/blocks/form/controller.php:420 count(): Parameter must be an array or an object that implements Countable (2)

↓これは、iPhoneからの送信テスト分だと思います。iPhoneも同じエラーです。
2018/07/20 21:53:53 アプリケーション jun Session Invalidated. Session user agent "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1" did not match provided agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15"

2018/07/20 21:47:50 例外 jun Exception Occurred: /home/a-itc/a-itc.info/public_html/application/blocks/form/controller.php:420 count(): Parameter must be an array or an object that implements Countable (2)

2018/07/20 21:08:07 例外 ゲスト Exception Occurred: /home/a-itc/a-itc.info/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:66 An exception occurred while executing 'INSERT INTO CollectionVersionBlocksOutputCache (cID, cvID, bID, arHandle, btCachedBlockOutput, btCachedBlockOutputExpires) VALUES (?, ?, ?, ?, ?, ?)' with params ["1", "10", "246", "Page Header : 17", "\n\n\n\n\n Work\n\n", 1689854887]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-10-246-Page Header : 17' for key 'PRIMARY' (0)

 他にもログはありますが、あまり多いと迷惑なのでここまでで、
 

Re: Re: Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 10:30
今回のエラーは、一番上のもので一旦調査したいと思います。

concrete5のバージョンを教えていただいたいのと
application/blocks/form/contorller.php を作成された理由を教えていただけますか?
 

Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 10:50
aclissさま

ありがとうがざいます。
お手数をおかけします。

バージョンは、8.4.0です。

controller.php は、フォームに自動返信機能をつけたくて
「concrete5のフォームブロックには、自動返信機能が無い!」という記事を読んだもので、

これが、悪さをしているのなら削除も考えていたので、
やはりですかね?
もう一つ、
\application\mail\にblock_form_auto_reply.php を追加しています(2018/07/12)

別途
〒番号入力で住所自動変換入力(.html)と組み合わせたいと思っています(こちらは未実装)
 

Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 11:22
application/blocks/form/controller.php
に関してですが、concrete5のどのバージョンのcontroller.phpを元に作られたのかが大きな問題となります。
ファイル名をcontroller.php.bak などにファイル名を変更するだけでも無効にできたと思います(試したことないので推測です。。。)

それで一度テスト見てみてください。
 

Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 11:47
acliss さま

ありがとうございます。

指摘されるまで、controller.phpを組み込んでいたことを失念していました。

オーバーライドをやめてみます。

controller.php

block_form_auto_reply.php

ありがとうございます。
 

Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 11:40
Yamachann11dさま

これが、悪さをしているのなら削除も考えていたので

エラーが出たときは、デフォルト状態でも同じようにエラーが出るかを確認しないと、エラーの原因の特定が難しいです。
今回の場合、もしオーバーライドをやめてエラーが出なかったら、追加したオーバーライドのファイルが原因だとわかります。
デフォルト状態でもエラーが出るのであれば、原因は別にある可能性があります。

また、やり取りを拝見していると『自動返信機能』とありますので、下記のページを参考にされたのではないかと思うのですが、違いますでしょうか?

http://onocom.net/blog/%E3%80%90concrete5%E3%80%91concrete5-ver5-7%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AB%E8%87%AA%E5%8B%95%E8%BF%94%E4%BF%A1%E6%A9%9F%E...

もし、そうだとしたら記事にある GitHub の controller.php は、おそらく concrete5のバージョン5.7の時のファイルです。
違うバージョンのファイルを使うとエラーが出る確率は高くなると思います。
 

Re: Re: 教えてください。メール送信テストでエラー

2018年7月21日 at 11:46
nipper さま
お世話様です。
おはようございます。

ご指摘のサイト記事を見ていました。
オーバーライドをやめてみます。

controller.php

block_form_auto_reply.php

ありがとうございます。