現在、作成しているサイトに問い合わせフォームを設けています。
検索して出てきたPHPのコードをそのままお借りしました。
エラー画面(氏名やメアド、内容が記述されていない場合など)のフッターは別に用意したfooter.phpを埋め込んで表示させたいのですが、上手く表示されません。フッターは表示されず空白のままです。エラーコードなども表示されていません。
以前は普通にフッターも表示されていたのですが、少しコードをイジってしまったら表示されなくなってしまいました。
問い合わせフォームに記述漏れが無く、正常に送信された時も同じように埋め込んだフッターを表示させているのですが、こちらは正常に表示されます。
どこを変更すると正常にフッターが表示されるようになるでしょうか?
ご存知の方いらっしゃいましたらご教示ください。
よろしくお願いします。
<?php
//--------件名
define("SUBJECT","お問い合わせフォームより");
//--------受け取りメアド
define("MAILTO","info@○○.com");
//--------文字コード
define("CODE","UTF-8");
//--------ホームURL
$homeurl='http://○○.com/';
//--------入力チェック
function check(){
global $_POST;
if($_POST['name']==""){ error("氏名/ニックネームが入力されていません。");}
if(!$_POST['mailadd']){ error("メールアドレス(返信用)が入力されていません。");}
if($_POST['contents']==""){ error("内容が入力されていません。");}
}
//--------メール送信
function sendmail(){
global $_POST;
$agent = getenv("HTTP_USER_AGENT");
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host=="" || $host==$addr){ $host = @gethostbyaddr($addr);}
$date = gmdate("Y/m/d H:i:s (D)",time()+9-60-60);
$mailbody = <<<EOM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ お問い合わせフォームより
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□送信者氏名:${_POST['name']}
□メールアドレス:${_POST['mailadd']}
□内容:
${_POST['contents']}
------------------------------------------------------------------------------------------
投稿時間:$date
投稿者のIPアドレス:$addr
投稿者のホスト名:$host
投稿者のブラウザ:$agent
------------------------------------------------------------------------------------------
EOM;
mb_language("Ja");
mb_internal_encoding(CODE);
$sub = mb_convert_encoding(SUBJECT,CODE);
$headers ="From: ".$_POST['mailadd']."\r\n";
//$mailbody = stripslashes($mailbody);
$rcode = @mb_send_mail(MAILTO,$sub,$mailbody,$headers);
if(!$rcode){ error("メール送信エラー");}
}
//--------最後のメッセージ
function finish_html(){
echo <<<EOM
<p class="txt">お問い合わせを受け付けました。ありがとうございました。</p><br>
<p class="txt"><INPUT type="button" name="close" value="戻る" onClick="location.href='http://○○.com/contact.html'" class="button"></p><br clear="all">
EOM;
}
//--------エラー処理
function error($msg){
echo <<<EOM
<p class="txt"><font color="red">$msg</font></p><br>
<p class="txt"><INPUT type="button" name="close" value="戻る" onClick="history.back(); return false;" class="button"></p><br clear="all">
</div>
<div id="s_main-bottom"></div>
</div>
</div>
<?php include('footer.php'); ?>
</div>
</body>
</html>
EOM;
exit();
}
//--------メイン処理
if ($_POST['submit']) {
check();
sendmail();
finish_html();
}
?>
</div>
<div id="s_main-bottom"></div>
</div>
</div>
<?php include('footer.php'); ?>
</div>
No.2ベストアンサー
- 回答日時:
単純に2回に分ければいいと思いますけど・・・
function error($msg){
echo <<<EOM
<p class="txt"><font color="red">$msg</font></p><br>
<p class="txt"><INPUT type="button" name="close" value="戻る" onClick="history.back(); return false;" class="button"></p><br clear="all">
</div>
<div id="s_main-bottom"></div>
</div>
</div>
EOM;
include('footer.php');
echo <<<EOM
</div>
</body>
</html>
EOM;
exit();
}
agunuzさん
再度回答ありがとうございます。
ご教示頂いた様に修正しましたら無事フッターが表示されるようになりました。
助かりました。ありがとうございました。
No.1
- 回答日時:
error()を呼び出したときに
function error($msg){
echo <<<EOM
このechoはEOMまでをまとめて処理します。なので途中に
<?php include('footer.php'); ?>
phpのコードがあっても「そのまま」ブラウザに返されます。変数の展開だけはされますが、phpコードは無視されます。ブラウザの返っているhtmlソースを確認してみてください。
なお、
global $_POST;
スーパーグローバル変数をglobal宣言する必要はありません。
この回答への補足
agunuzさん
回答ありがとうございます。
ブラウザでソースを確認してみたところ確かに「<?php include('footer.php'); ?>」がそのまま排出されていました。
エラー処理内でfooter.phpを埋め込まず、エラーなしで正常に処理された時と同じように一番下にあるfooter.phpを埋め込む事は可能でしょうか?
EOM内のfooter.phpを削除して試してみたのですが、一番下のコードは処理してくれませんでした。
よろしくお願いします。
function error($msg){
echo <<<EOM
<p class="txt"><font color="red">$msg</font></p><br>
<p class="txt"><INPUT type="button" name="close" value="戻る" onClick="history.back(); return false;" class="button"></p><br clear="all">
EOM;
exit();
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WordPressのLighting(テーマ)に...
-
外部ファイルの読み込み
-
アップロードファイルの数に応...
-
ワードプレス index.phpの差し...
-
変数で日付を指定し、新しい順...
-
国語の感想文(いのうえひさし...
-
意見文のテーマ
-
ワードプレスのサイトに謎の英...
-
ワードプレス。lightning ペー...
-
Dropboxとウイルスバスターにつ...
-
Chromeのプラグインブロック
-
こんな素敵なサイトって、WordP...
-
wordpressでライトボックスで記...
-
Lightningのテーマで、CSSでの...
-
WordPressでの、スタッフ、メン...
-
Win7のタスクバーの色が変更で...
-
Windows Media Player
-
ワードプレスって何ですか?
-
WP ショートコードの編集?
-
ワードプレスにログインできま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WordPressのLighting(テーマ)に...
-
アップロードファイルの数に応...
-
WP/ 記事タイトルをクリックさ...
-
PHPのソース変更が反映されない
-
ワードプレスでカテゴリー毎に...
-
URL短縮ツール「楽々URL」をさ...
-
ワードプレス index.phpの差し...
-
曜日毎に読み込むphpを変更...
-
PHPのクッキーによるリダイレクト
-
PHP初心者です。
-
変数で日付を指定し、新しい順...
-
Smarty コンバートエラー??
-
Wordpressで記事がない場合にメ...
-
国語の感想文(いのうえひさし...
-
ワードプレス。lightning ペー...
-
ワードプレステーマkatawaraのCSS
-
意見文のテーマ
-
ワードプレスのプラグイン
-
ワードプレスの403エラーについて
-
こんな素敵なサイトって、WordP...
おすすめ情報