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);
}
}
お礼
ありがとうございます! 記述は間違っていなかったことがわかりました。 今後エラーにならなければこれを、エラーになるようであれば御助言通りの記述法を用います! 大変に助かりました。 ありがとうございました。