メールが送信されません。<phpを閉じて開いても
メールが送信されません。<phpを閉じて開いても送信ボタンを押してメールが送信されません。
<?php
namespace Application\Block\ExternalForm\Form\Controller;
use Concrete\Core\Controller\AbstractController;
use Core;
use Page;
class TForm2 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="./tform2.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="./tform2.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 } ?>
//ここまで
<?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);
}
}
補足
yambejpさん ありがとうございます。 おっしゃるとおり文字コードが原因でした。 以前に作ったものを共通部分が多かったのでそのまま使っていたのですが 文字コードを調べてみたら今回作っているものとは 違う文字コードで保存してありました。 解決しましたありがとうございます。