【发布时间】:2013-09-21 23:20:34
【问题描述】:
我有一个简单的表格供用户提交他们的电子邮件地址:
<form method="post" action="contact.php">
<input type="text" name="signup" placeholder="ENTER EMAIL">
<button id="nSign" type="submit" name="newsSubmit" class="btn-primary">Submit</button>
</form>
现在我有了这个代码来获取电子邮件地址,然后将该电子邮件地址发送到另一个电子邮件地址:
$to = "someemailaddress@gmail.com";
$subject = "Newsletter Signup";
$email = $_POST["signup"];
$message = "Newsletter request from".$email;
$headers = "From: Contact Page Newsletter Signup";
$sent = mail($to, $subject, $message, $headers);
if($sent) {
print "<p>Your mail was sent successfully.</p>";
}
else {
print "<p>We encountered an error sending your mail</p>";
}
现在,在我输入我的电子邮件并按下提交后,我会收到一封带有正确标题和主题的电子邮件,但该邮件不包含 $email 变量。 $_POST["signup"] 似乎没有获取用户输入。
我对 PHP 完全陌生;该站点也在 Wordpress 上,所以我不确定 Wordpress 中是否有任何可能导致此问题的内容。请帮助说明为什么这不起作用,并感谢您的反馈!
【问题讨论】:
-
其余代码在哪里?
-
您在消息中实际在哪里包含
$email变量? -
您正在执行
mail(..)两次。您应该将其保存在变量中:$mail_res = mail(..),然后检查变量是否成功:if($mail_res) {..} -
你也应该小心;用户可能会向表单发送垃圾邮件并使您的邮箱和 smtp 服务器泛滥。
-
我已经编辑了问题以包含正确的代码,对此感到抱歉并感谢您的反馈