こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpのフォームでエラーが出ます

php初心者です。

↓の参考サイトを参考にフォームを作ってみましたが、
ローカルサーバーでテストしてみると、inquiry.phpの最後の行(?>)に
エラーがある旨のメッセージが出てしまい、
原因がわからず困っております。
どなたかおわかりになる方がいらっしゃいましたら、
よろしくお願いします。

【参考サイト】
http://php.frogstone.jp/inquiry/inquiry.php
【プログラムの構造】
index.html(メインプログラム)
sendEnd.html(送信完了ページ)
inquiry.php
【index.html】
<div id="form_main">
<?php echo($tagErr); ?>
<form action="inquiry.php" method="post">
<input name="mode" type="hidden" value="send" />

<div class="hiss">
<p>※印は必須項目です。</p>
</div>

<table>
<tr>
<th scope="row">お名前<b class="hiss">※</b></th>
<td><input type="text" name="name" value="" class="m" id="name"/></td>
</tr>
<tr>
<th scope="row">会社名</th>
<td><input type="text" name="company" value="" class="m" id="company"/></td>
</tr>
<tr>
<th scope="row">お電話番号<b class="hiss">※</b></th>
<td><input type="text" name="tel" value="" class="" id="tel"/></td>
</tr>
<tr>
<th scope="row">メールアドレス<b class="hiss">※</b></th>
<td><input type="text" name="mail" value="" class="" id="mail"/></td>
</tr>
<tr>
<th scope="row">お問い合わせ内容<b class="hiss">※</b></th>
<td><textarea name="naiyo" cols="10" rows="10" class="L" id="naiyo"></textarea></td>
</tr>
</table>
<div class="align_c"><input type="submit" name="submit" value="確認画面へ進む" class="input-b"/></div>
</form>
</div>

【inquiry.php】
<?php

#設定
$adminMail = "test@test.com";

#データの受け取り
foreach($_REQUEST as $key => $value) {
$value = mb_convert_kana($value,"rkv");
$FORM[$key] = $value;
}

#フォームから送信された場合
if($FORM["mode"] == "send") {

#入力エラーチェック
$flgErr = true;
$tagErr = "";

if($FORM["name"] == "") {
$flgErr = false;
$tagErr = "<li>お名前をご記入ください。</li>\n";
}

if($FORM["mail"] == "" && $FORM["tel"] == "") {
$flgErr = false;
$tagErr .= "<li>お電話番号かメールアドレスをご記入ください。</li>\n";
}

if($FORM["naiyo"] == "") {
$flgErr = false;
$tagErr .= "<li>お問い合わせ内容をご記入ください。</li>\n";
}

#入力エラーがあれば
if(!$flgErr) {

#エラーメッセージ設定
$tagErr = '<p><img src="../common/enterErr.jpg"></p><ul>'.$tagErr.'</ul>;

#入力エラーがなければ
} else {

#管理者にメール送信
mb_language("japanese");

$subject ="お問い合わせがありました。";
$message .="お問い合わせ内容。\n\n";
$message .="お名前 :".$FORM["name"]."\n";
$message .="会社名 :".$FORM["company"]."\n";
$message .="電話番号 :".$FORM["tel"]."\n";
$message .="メールアドレス :".$FORM["mail"]."\n";
$message .="お問い合わせ内容\n".$FORM["naiyo"]."\n";

mb_send_mail($adminMail,$subject,$message,"From:".#adminMail);

#完了ページへ移動
header("Location:http://localhost/test/contact/sendEnd.html");

}

?>

投稿日時 - 2008-12-17 03:31:03

QNo.4561876

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

参考URLに、それっぽい解説ページを見つけました。
ごめんなさい、あんまりわかんないです;;

参考URL:http://www.gesource.jp/weblog/archives/2007/08/xampp_for_windows_openpne.html

投稿日時 - 2008-12-18 04:47:04

お礼

いろいろと調べていただいてとても参考になりました。
まだ解決していませんが、
参考URLをゆっくり拝見して調べたいと思います。
ありがとうございました。

投稿日時 - 2008-12-19 01:53:41

ANo.1

【inquiry.php】
38行目:
$tagErr = '<p><img src="../common/enterErr.jpg"></p><ul>'.$tagErr.'</ul>;


$tagErr = '<p><img src="../common/enterErr.jpg"></p><ul>'.$tagErr.'</ul>';

54行目:
mb_send_mail($adminMail,$subject,$message,"From:".#adminMail);

mb_send_mail($adminMail,$subject,$message,"From:".$adminMail);

60行目:
?>

}
?>



if($FORM["mode"] == "send") {
のカッコが閉じられていないようでしたよ。
「Parse error」は文法のエラーですので、ソースの中に
何かくだらないミスがあるということです。

投稿日時 - 2008-12-17 04:13:03

補足

buddhisticさん、さっそく回答ありがとうございました。
カッコの閉じ忘れが原因だったんですね…。
buddhisticさんのご教授どおり、入力ミス訂正とカッコを入れてみましたところ、
Parse errorが出なくなりました。
しかし、喜びもつかの間、試しに空白のまま送信ボタンを押すと何も表示されず、
必須項目を入力して送信ボタンを押すと次のようなエラーが表示されました。

Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\xampp\htdocs\test\contact\inquiry.php on line 54

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\test\contact\inquiry.php:54) in C:\Program Files\xampp\htdocs\test\contact\inquiry.php on line 58

ちなみに、54行目とは
mb_send_mail($adminMail,$subject,$message,"From:".$adminMail);
58行目は
header("Location:http://localhost/test/contact/sendEnd.html");
です。

エラーをググってみたところ、メールサーバーが必要というような
解説をみつけたのですが、この場合もそれが原因なのでしょうか?
ローカルにメールサーバーをたてるという原理がいまいちよくわからないのですが、
どうすればよいのかご存知でしたら、ぜひ教えてください。
何度もすみません。

投稿日時 - 2008-12-18 02:00:59

あなたにオススメの質問