【发布时间】:2016-08-31 21:25:36
【问题描述】:
我使用下面的联系表格。当我在本地机器上运行它时,它正在工作。但是在我的服务器上,如果表单失败,它会做正确的事情并转到fail.php,但是当所有字段都填满后,它会在单击发送而不是success.php后转到send_contact2.php
这是 send_contact2.php
if (empty($_POST['name'])
|| empty($_POST['number'])
|| empty($_POST['email'])
|| empty($_POST['messagearea'])
){
header('Location: fail.php');
}
else {
$name = $_POST['name'];
$number = $_POST['number'];
$email = $_POST['email'];
$messagearea = $_POST['messagearea'];
$to = 'example@gmail.com';
$subject = "Website Message: Contact form";
$message = '$messagearea';
$headers = "From: WebsiteMessage";
mail($to, $subject, $message, $headers);
header("Location: success.php");
}
?>
这是我的表格
<form name="form1" method="post" action="send_contact2.php">
<input name="name" type="text" placeholder="Your Name"/> <br/>
<input name="email" type="email" placeholder="Your Email"/> <br/>
<input name="number" type="tel" placeholder="Your Number"/> <br />
<textarea name="messagearea" cols="" rows="" id="messagearea" placeholder="Your Message"/></textarea> <br/>
<input name="sumbit" type="submit" value="SEND" id="button2" />
</form>
我的 cPanel 中有这个设置
任何帮助将不胜感激
【问题讨论】:
-
检查您的错误日志是否有任何错误...当表单提交继续进行时是否正在发送电子邮件?
-
如果未发送电子邮件,您确定脚本是否已经到达 else 块?尝试放置 die('QA');在 else 块中,然后成功提交表单并查看字符串 QA 是否在屏幕上输出
-
你把它放在哪里了?在 mail() 函数之上还是之下?如果在上面,请尝试将其放在 mail() 函数的正下方,如果 QA 未输出,则 mail() 肯定失败
-
'$messagearea'无论如何都是错误的,即使电子邮件正在发送。'-quoted 字符串不插入变量。 -
@luke_mclachlan 我会的,但不能解决 mail() 问题
标签: php forms contact-form