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

解決済みの質問

PHPのメールフォームでチェックボックス

PHPでメールフォームを作っているのですが、チェックボックスの値がメールで送信されません。

ソースは・・・(チェックボックスの部分だけ)
*フォームページ
<form method="post" action="form1.php" name="infoform" id="infoform" onsubmit="return checkForm();">
<INPUT type="checkbox" name="k_menu[]" id="k_menu[]" value="メニュー1" />メニュー1&nbsp;<INPUT type="checkbox" name="k_menu[]" id="k_menu[]" value="メニュー2" />メニュー12&nbsp;<INPUT type="checkbox" name="k_menu[]" id="k_menu[]" value="メニュー3" />メニュー3
<input type="reset" name="no" id="no" value="リセット" /><input type="submit" name="send" id="send" value="確認" />
</form>

*確認ページ
<?php
$p_k_menu = $_REQUEST['k_menu'];
?>
<table>
<th>興味のあるメニューは?</th>
<td>
<?php
for($i=0; $i<sizeof($p_k_menu); $i++){
print "${p_k_menu[$i]}<br />";
}
?></td>
</tr>
</table>
<form method="post" action="form2.php" name="h_form" id="h_form">
<input type="hidden" name="k_menu" id="k_menu" value="<?php print htmlspecialchars($k_menu); ?>" />

*メール送信ページ
<?php
$p_k_menu = $_POST['k_menu'];

mb_language("Ja");
mb_internal_encoding("EUC-JP");
$mailbody = "興味のあるメニューは?:".$k_menu;
$address = "メールアドレス";
$subject = "件名";
if(mb_send_mail($address,$subject,$mailbody,"from:メールアドレス")){
print "応募を受け付けました。"."<br />"."ありがとうございました。";
}else{
print "応募を確認できませんでした。"."<br />"."申し訳ございませんが、もう一度ご送信下さい。"."<br />"."<form><input type='button' name='bk' id='bk' value='戻る' onclick='history.go(-2)'></form>";
}
?>

ソースは以上です。
何処が悪いんでしょうか??

投稿日時 - 2009-04-29 15:07:05

QNo.4918200

すぐに回答ほしいです

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

メール本文に受け渡しされたデータを使っていないからです。
変数名を良く確認しましょう!

投稿日時 - 2009-04-29 15:49:47

補足

あ、本当だ!!

$mailbody = "興味のあるメニューは?:".$p_k_menu;

ですよね?
これでしたらメール文に
『興味のあるメニューは?:<br />

<b>Warning</b>: htmlspecialchars() expects parameter 1 to be string, array given in <b>アドレス/form/form1.php</b> on line <b>140</b><br />』

と来ました・・・。
これってなんなんでしょう??

投稿日時 - 2009-04-29 15:54:39

お礼

すいません!出来ました!!
確認ページの
<input type="hidden" name="k_menu" id="k_menu" value="<?php print htmlspecialchars($k_menu); ?>" />



<input type="hidden" name="k_menu" id="k_menu" value="<?php
for($i=0; $i<sizeof($p_k_menu); $i++){
print "【${p_k_menu[$i]}】";
}
?>" />

にしたらあっさりと(^-^;
ありがとうございました!

投稿日時 - 2009-04-29 19:01:50

ANo.1

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

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

回答(1)

あなたにオススメの質問