PHPのメールフォームにチェックボックスを追加しましたがうまく送れず頭を抱えています。
お力をお貸しください。
必要だと思われるソースです。
inquiry.html
<form action="check_inquiry.php" method="POST">

<p><label for="title">お名前:</label>
<input type="text" name="title" size="60">
</p>
<p><INPUT type="checkbox" name="check[]" value="資料請求" />資料請求<INPUT type="checkbox" name="check[]" value="至急" />至急<INPUT type="checkbox" name="check[]" value="質問" />質問</p>
<br />
<p><label for="massage">メッセージ:</label></p>
<p><textarea name="message" cols="50" rows="20"></textarea></p>
<p><input type="submit" value="内容の確認"></p>
</form>


check_inquiry.php
<?php
$title = htmlspecialchars($_POST['title'], ENT_QUOTES);
$message = htmlspecialchars($_POST['message'], ENT_QUOTES);
$m_check = $_POST['check'];
?>
■内容を確認してください。
<br>
<form action="send_inquiry.php" method="POST">
<input type="hidden" name="title" value="<?php echo $title; ?>" />
<input type="hidden" name="message" value="<?php echo $message; ?>" />
<input type="hidden" name="check" value="<?php for($i=0; $i<sizeof($m_check); $i++){
echo "【${m_check[$i]}】";
}
?>" />

<br />
お名前:
<br />
<?php echo $title; ?>
<br />
問い合わせ内容:
<?php for($i=0; $i<sizeof($m_check); $i++){echo "【${m_check[$i]}】";
}; ?>
<br />
メッセージ詳細:
<br />
<?php
// 改行部分にBRタグを埋め込む
echo nl2br($message);
?>
<br />
<input type="submit" value="お問い合わせ内容の送信">
</form>


send_inquiry.php
<?php
$title = htmlspecialchars($_POST['title'], ENT_QUOTES);
$message = htmlspecialchars($_POST['message'],ENT_QUOTES);
$m_check = $_POST['check'];

//日本語UTF8
mb_language('ja');
mb_internal_encoding('UTF8');

//自動送信<送信元のアドレス
$name = '自動送信';
$email = 'メールアドレス';
$header = 'From: '. mb_encode_mimeheader($name) . '<' . $email .'>';

// メール送信
$result = mb_send_mail($email, $title, $message, $header, $m_check);
//メール送信の確認
if ($result) {
// メール送信の成功
echo '■管理人へ送信しました。';
} else {
// メール送信の失敗
echo '■管理人への送信に失敗しました。';
}
?>

チェックボックスにチェックを入れないと送信出来ますが
チェックを入れると送信に失敗します。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

// メール送信


$result = mb_send_mail($email, $title, $message, $header, $m_check);

↑5番目のパラメータにPOSTされたチェックボックスの値を設定してるのがまずいんじゃないですかね?

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )

additional_parameter は、MTA へ渡す コマンドライン引数です。sendmail を利用する際に正しい Return-Path を設定するためなどに利用すると便利です。

参考URL:http://php.net/manual/ja/function.mb-send-mail.php
    • good
    • 0
この回答へのお礼

ありがとうございました。
無事解決しました。

お礼日時:2011/04/14 14:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング