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

解決済みの質問

チェックボックスの内容が送信出来ません。

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 '■管理人への送信に失敗しました。';
}
?>

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

よろしくお願いします。

投稿日時 - 2011-04-12 12:32:57

QNo.6662895

困ってます

質問者が選んだベストアンサー

// メール送信
$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

投稿日時 - 2011-04-12 14:02:49

お礼

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

投稿日時 - 2011-04-14 14:58:11

ANo.1

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

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

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-