我有这样的事情:
<?php
$ToEmail = 'bryan@email.com';
$subject = 'Contact Form';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$message = "Name: ".$_POST["name"]."<br>";
$message .= "Subject: ".$_POST["subject"]."<br>";
$message .= "Email: ".$_POST["email"]."<br>";
$message .= "Message: ".nl2br($_POST["message"])."<br>";
mail($ToEmail, $subject, $message, $mailheader) or die ("Failure");
但我需要包含复选框。我最初有: $ check。= implode(',',$ _POST ['check']);来自这里的其他人,但现在不起作用,不知道还有什么可以做的。任何帮助将不胜感激!
答案 0 :(得分:1)
复选框只有在检查过时才会发出true或false值。我建议您使用唯一名称分解每个复选框,然后检查其帖子值。
input name="chk-makeover" value="Makeover" type="checkbox" class="contact_checkbox"
要在邮件中包含上面的示例复选框,您可以尝试以下操作:
$message .= "Services: ";
if (isset($_POST['chk-makeover'])) $message .= "Makeover";
答案 1 :(得分:0)
您想将所选框附加到邮件中吗?
您的$check .= implode(', ', $_POST['check'])
应该可以正常工作,您需要做的就是将其添加到消息中。
所以:
<?php
$ToEmail = 'bryan@email.com';
$subject = 'Contact Form';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$message = "Name: ".$_POST["name"]."<br>";
$message .= "Subject: ".$_POST["subject"]."<br>";
$message .= "Email: ".$_POST["email"]."<br>";
$message .= "Message: ".nl2br($_POST["message"])."<br>";
if(isset($_POST['check'])){
$message .= implode(', ', $_POST['check']);
}
mail($ToEmail, $subject, $message, $mailheader) or die ("Failure");
编辑:忘记检查以查看是否设置了通过POST发送的检查数组。见修订后的^^
Edit2:实际上,如果$ _POST ['check']不存在就会出现问题,因为我们仍然会从$ check附加下一行没有任何内容,所以最好是从一开始就将它附加到$ message。最后修订大声笑。祝你好运。