我的联系表格有点麻烦。它正在向我的服务器发送电子邮件,但不知何故它没有从"email"
字段中获取信息。相反,我在"From:"
字段中得到的是我在服务器上的地址,如下所示:"muzedima@box693.bluehost.com"
。它也没有从“名称”字段中获取信息。我做错了什么?另外,我试图让主题行说出发件人的名字,但我失败了,是否有可能?
这是HTML:
<div class="large-7 medium-10 small-12 medium-centered large-centered column">
<div class="row">
<form method="post" action="email2.php">
<input type="text" name="name" class="defaultText" title="your name">
<input type="text" name="email" class="defaultText" title="your email address">
<textarea name="comments1" class="defaultText" title="Tell us about your business"></textarea>
<textarea name="comments2" class="defaultText" title="How can we help?"></textarea>
<div class="large-7 medium-10 small-12 medium-centered large-centered column">
<input type="submit" name="send message" value="Send Message">
</div>
</form>
</div>
</div>
这是PHP脚本:
<?php
if (isset($_POST['email']))
//if "email" is filled out, send email
{
//send email
$to = 'info@muzedimage.com';
$name = $_POST['name'] ;
$email = $_POST['email'] ;
$subject = 'Inquiry from $name';
$comments1 = $_POST['comments1'] ;
$comments2 = $_POST['comments2'] ;
$message = $comments1 . "\n\n" . $comments2;
$headers = "From: $name, $email";
mail($to, $subject, $message, $headers);
echo "<script>window.location = 'http://www.muzedimage.com'</script>";
}
else
//if "email" is not filled out,
{
echo "Oops!, you forgot your email!";
}
?>
谢谢你们!
答案 0 :(得分:1)
PHP变量不在单引号内评估,只是双引号,因此更改以下内容:
$subject = 'Inquiry from $name';
//to
$subject = "Inquiry from $name";
同样对于电子邮件部分,你没有做任何事情......所以用它做点什么。
$message = $comments1 . "\n\n" . $comments2 . "\n\n" . $email;
现在它也发送电子邮件。
答案 1 :(得分:0)
Ohgodwhy
已经指出了代码中的一个问题,所以我不打算重复它。
关于您收到From:
作为"muzedima@box693.bluehost.com"
的原因是因为这一行:
$headers = "From: $name, $email";
它必须是这样的:
$headers = "From: $name <$email>\r\n";
$email
变量必须由<
和>
封装,最好以\r\n
测试并使用Ohgodwhy's
答案和我的答案。