• 締切済み

concrete5の外部フォームの埋め込みについて

前提 phpでお問い合わせフォームをpostするときにエラーになります。 実現したいこと メール送信 concrete5の外部フォームの埋め込みについてエラーが発生します。 参考にしたサイトです。 https://qiita.com/s79ns/items/62ce69fef20258f35534 https://ginneko-atelier.com/blogs/entry236/ よろしくお願いします。 発生している問題・エラーメッセージ "syntax error, unexpected '<'" 該当のソースコード <?php namespace Application\Block\ExternalForm\Form\Controller; use Concrete\Core\Controller\AbstractController; use Core; use Page; class TForm1 extends AbstractController { // action を指定しなかった場合、view が実行されると思われる。初期表示。 public function view() { // 最初にフォームを開いた時の処理です。初期値を view に渡して、編集画面の表示を指定します。 $input['p_name'] = ''; $input['p_email'] = ''; $input['p_message'] = ''; $this->set('isvalid', true); $this->set('input', array()); $this->set('error', array()); $this->set('section', 'edit'); } // 入力値の検証処理 private function validate() { // バリデーション結果を成功に設定 $isvalid = true; // 入力値を取得 $input['p_name'] = trim($this->post('p_name')); $input['p_email'] = trim($this->post('p_email')); $input['p_message'] = trim($this->post('p_message')); // 検証実行 if ($input['p_name'] == '') { $isvalid = false; $error['p_name'] = 'お名前は、必ず入力してください。'; } if ($input['p_email'] == '') { $isvalid = false; $error['p_email'] = 'メールアドレスは、必ず入力してください。'; } if ($input['p_message'] == '') { $isvalid = false; $error['p_message'] = 'メッセージは、必ず入力してください。'; } // View に値を渡す $this->set('isvalid', $isvald); $this->set('input', $input); $this->set('error', $error); return $isvalid; } public function action_confirm() { // 検証結果によって、確認(confirm) を、編集(edit) セクションを出し分け。 if ($this->validate()) { $section = 'confirm'; } else { $section = 'edit'; } $this->set('section', $section); } public function action_update() { // 検証結果によって、完了(complete) を、編集(edit) セクションを出し分け。 if ($this->validate()) { //ここの部分でエラーが発生します。 //ここから追加しました。 <?php if($_POST ){ ?> <!-- 確認画面 --> <form action="./cotactform.php" method="post"> 名前 <?php echo $_POST["fullname"] ?> Eメール <?php echo $_POST["email"] ?> 本文 <?php echo nl2br($_POST["message"]) ?> <input type="submit" name="back" value="戻る" /> <input type="submit" name="send" value="送信" /> </form> <?php } else { ?> <!-- 入力画面 --> <form action="./contactform.php" method="post"> 名前 <input type="text" name="fullname" value=""> Eメール <input type="email" name="email" value=""> 本文 <textarea name="message" id="" cols="" rows=""></textarea> <input type="submit" name="confirm" value="確認" class="button"> </form> <?php } ?> //ここまで $c = Page::getCurrentPage(); header('location: '.Core::make('helper/navigation')->getLinkToCollection($c, true).'/complete'); exit; } else { $this->set('section', 'edit'); } } public function action_complete() { $this->set('section','complete'); } public function action_back() { // 戻るボタンで、編集(edit)セクションを表示します。 $section = 'edit'; $this->set('section', $section); } }

みんなの回答

回答No.1

"syntax error, unexpected '<'"というエラーは、action_update()関数内に、 <?php if($_POST ){ ?>のようにPHPのコードブロックが二重となっていることです。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー public function action_update() { // 検証結果によって、完了(complete) を、編集(edit) セクションを出し分け。 if ($this->validate()) { //ここの部分でエラーが発生します。 //ここから追加

fujisawa33
質問者

お礼

ありがとうございました。質問し直します。

fujisawa33
質問者

補足

具体的にどう書けばいいですか? お願いします。

関連するQ&A