我正在开发一个联系表单,用于向用户数据发送电子邮件,但它无效。
代码:
<?php
if ($_POST["email"]<>'') {
$ToEmail = 'youremail@site.com';
$EmailSubject = 'Site 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_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY = "Email: ".$_POST["email"]."";
$MESSAGE_BODY = "Comment: ".nl2br($_POST["comment"])."";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
Your message was sent
<?php
} else {
?>
<form action="mail.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="Comment" cols="45" rows="6" id="Comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>
<?php
};
?>
它会抛出如下错误:
未定义的索引:第10行的commen。
第11行缺少标题。
答案 0 :(得分:3)
以下是您的代码中的一些错误..
1.在第2行更改代码(我不知道为什么你没有提到这个错误)
if ($_POST["email"]<>'') {
到
if (isset($_POST["email"]) && $_POST["email"]<>'') {
2.将textarea的名称从“Comment”改为“comment”
最后按照本文前面的答案说明解决“标题丢失”问题。
之类的东西$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
答案 1 :(得分:1)
当每个人都说出你的第一个错误时,我不会重复它,但另一个错误是:
您应该加入邮件标题和邮件正文:
您之前的代码:
$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_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY = "Email: ".$_POST["email"]."";
$MESSAGE_BODY = "Comment: ".nl2br($_POST["comment"])."";
新守则:
$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_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."";
看看等号前面给出的点。
答案 2 :(得分:0)
看到你需要连接mailHeader var同样适用于正文消息
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
答案 3 :(得分:0)
你犯了两个错误。
您已提供 name="Comment"
表单,请将 name="comment"
或$ _POST [“comment”]提供给$ _POST [“评论”] 强>
在mail header
之后添加。。赞
$ mailheader =“From:”。$ _ POST [“email”]。“\ r \ n”;
$ mailheader 。 =“回复:”。$ _ POST [“email”]。“\ r \ n”;
$ mailheader 。 =“内容类型:text / html; charset = iso-8859-1 \ r \ n”;
$ MESSAGE_BODY =“姓名:”。$ _ POST [“name”]。“”;
$ MESSAGE_BODY 。 =“电子邮件:”。$ _ POST [“email”]。“”;
$ MESSAGE_BODY 。 =“评论:”。nl2br($ _ POST [“comment”])。“”;
答案 4 :(得分:0)
您收到此错误的第10行是因为您使用的是 $ _ POST [&#34;评论&#34;]&#34; ,但在您写的 id =& #34;注释&#34; 即可。要删除错误,请注意两个地方的upar和小写..
谢谢。