【发布时间】:2022-02-11 07:39:22
【问题描述】:
所以我一直在努力创建一个联系表单。无论我尝试什么,我都无法让它发挥作用。我读过不同的博客,如何做等。我希望得到一些帮助。 注意:当显示 email@email.com 时,我输入了自己的电子邮件。
HTML:
<div class="col-lg-6 offset-lg-1">
<form action="form-data/formdata.php" class="form-widget form-control-op-02">
<div class="field-wrp">
<input type="hidden" name="to"value="email@email.com">
我不会对表单字段的所有详细信息感到厌烦,例如姓名、电话号码、电子邮件等。
PHP:
if (isset($_POST) && sizeof($_POST) > 0) {
$to = $_POST['to']['val']; // <=== Set static email here.
if (isset($_POST['formtype'])) {
unset($_POST['formtype']);
}
if (isset($_POST['to'])) {
unset($_POST['to']);
}
$email_address = $_POST['email']['val'];
$email_subject = "Form submitted by: ".$_POST['name']['val'];
$email_body = "You have received a new message. <br/>".
"Here are the details: <br/><br/>";
foreach ($_POST as $key => $value) {
$email_body .= "<strong>" . $value['label'] . ": </strong> " . $value['val'] . "<br/><br/>";
}
$headers = "From:<$email_address>\n";
$headers.= "Content-Type:text/html; charset=UTF-8";
if($email_address != "") {
mail($to,$email_subject,$email_body,$headers);
return true;
}
}
?>
【问题讨论】:
-
您已经得到了问题的答案,但是如果您将输入命名为
name="to",为什么还要有$_POST['to']['val']?它应该只是$_POST['to'](其他输入也可能相同)。在表格中包含“收件人”地址也不好。人们可以改变这一点并使用您的表单向其他人发送垃圾邮件。而是在 PHP 中硬编码“to”地址。
标签: php html contact-form