自作外部フォームが動作しない
環境
・concrete5:バージョン5.7.5.6
・サーバー:Xserver X10プラン
・MySQLのバージョン:MySQL5.5
いつも お世話になります。
公式の過去記事 Webの記事などを参考に予約を受ける
外部フォームを作成してみました。
なんとか 外部フォームとして認識され設置後
必須項目を入力せずに送信すると ビューにエラーが出て
送信できない所まで動作することが確認できました。
その後 正しい入力値を入力して 送信すると複数のエラーが出て
動作しない状態です。
代表的なエラーは以下の通りで
sprintf(): Too few arguments
application/mail/reserve_form_complete.php:36
なので reserve_form_complete.php:36 行目がおかしいだと
思うのですが
その他にも handleError や /Mail/service.php:158 など
Concrete5 本体側のエラー表示もあり お手上げです。
多分 根本的な書き間違いがあると思うのですが....
PHPなどプログラム知識がないので ご指摘いただければ助かります。
実際のコードへのリンクです。(個人情報がのってたので削除してリンクし直しました。)
http://gist.github.com/itacts/386a51911438828572a6
※ 実際のファイル名にするとうまく保存できなかったので
仮のファイル名 1.php 2.php 3.php で保存しています。
Application\Block\ExternalForm\Form\Controller
以下に reserve_form.php(2.php)
Application\Block\ExternalForm\Form\
以下に reserve_form.php(3.php)
Application\Mail
以下に reserve_form_complete.php(1.php)
にそれぞれのファイルを配置しています。
お手数をおかけしますがどうぞよろしくお願いします。
Re: 自作外部フォームが動作しない
ご指摘ありがとうございます。
application/mail/reserve_form_complete.php:36
のエラーについては
reserve_form_complete.php の
36行目:", $r_name, $content); 2つを
reserve_form.phpで設定している引数
36行目:", $r_name, $r_email,$r_post,$r_addressj,$r_tel
,$r_data,$r_time,$r_pelple,$r_massage); 9つに
設定することによりエラー表示が無くなりました。
まだ 15個 エラー表示があるのですが お気付きの部分があれば
引き続きご指摘いただければ助かります。
エラー内容は 全て同じで
内容:Zend\Mail\Message::addTo expects a string, AddressInterface, array, AddressList, or Traversable as its first argument; received "NULL"
場所:/concrete/vendor/zendframework/zend-mail/src/Message.php
場所:/concrete/src/Mail/Service.php
場所:/application/blocks/external_form/form/controller/reserve_form.php
場所:<#unknown>
場所:/concrete/src/Controller/AbstractController.php
場所:/concrete/blocks/external_form/controller.php
場所:/concrete/src/Page/Controller/PageController.php
場所:/concrete/src/Routing/DispatcherRouteCallback.php
場所:/concrete/src/Routing/DispatcherRouteCallback.php
場所:/concrete/src/Application/Application.php
場所:/concrete/bootstrap/start.php
場所:/concrete/dispatcher.php場所:/concrete/bootstrap/configure.php
場所:/concrete/dispatcher.php
場所:/index.php
"NULL" 受け渡しできるデータが無いという意味?
reserve_form.php 43行目:
<form method ="post" action="<?php echo $this->action('reserve_form_submit')?>">
とか あまり意味がわからず ('reserve_form_submit') と
しているのですが 問題ないでしょうか?
よろしくお願いします。
Re: 自作外部フォームが動作しない
http://gist.github.com/itacts/9393fb72369c10028128#file-3-php-L48
$mh->to($this->post('r_mail')); -> $mh->to($this->post('r_email'));
acliss
Re: 自作外部フォームが動作しない
application/mail/reserve_form_complete.php:36
のエラーは引数が足りないのが原因だと思います。
%sが9個に対して、36行目で2つだけ設定しているところを修正すればいいと思います。