所以我想要做的就是收到他们填充论坛的电子邮件,然后向他们填写的电子邮件发送消息是我拥有的:它说它已发送但我从未收到消息:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: My Contact Form';
$to = '$email';
$subject = 'Folio Message';
$body = "Hello";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<center><font color="lightgray"><p>Message Sent Successfully!</p><script type="text/javascript"> function leave() { window.location = "http://webdesign.about.com"; } setTimeout("leave()", 3000); </script></center>';
} else {
echo '<center><font color="lightgray"><p>Ah! Try again, please?</p></font></center>';
}
}
?>
所以我有$to = '$email';
所以通过这样做它应该读取正确填写的电子邮件?我的PHP技能很弱
有任何想法吗?还是建议?
提前谢谢亲切的人!
答案 0 :(得分:1)
从 $ to ='$ email';
中删除撇号应该 $ to = $ email;
使用撇号,您的 $ to 变量将设置为字符串“$ email”,而不是用户输入的电子邮件。
答案 1 :(得分:0)
删除$email
周围的单引号,因此您的代码如下所示:$to = $email;
。
PHP将单引号中的内容评估为文字字符串,而不解释任何变量。因此,它实际上使用文本$email
作为收件人的电子邮件地址。
答案 2 :(得分:0)
这里有两件事:
From
标头应包含有效的邮件地址。 E.g。
$from = 'From: youraddress@domain.com';
正如其他人所说,修复单引号。您可以在$email
调用
mail
mail ($email, $subject, $body, $from)
另外,请考虑清理POST参数。特别是如果您的脚本位于公开网站上。