我正在使用下面的联系表格。当我在我的本地机器上运行时,它正在工作。但是在我的服务器上,如果表单失败,它会做正确的事情并转到fail.php,但是当所有字段都填满后,它会在单击send而不是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中有此设置
非常感谢任何帮助
答案 0 :(得分:0)
如果页面停留在send_contact2.php上,那是因为,标题(&#34;位置:success.php&#34;)不重定向。阅读这篇文章,它可能有所帮助。 Php header location redirect not working
答案 1 :(得分:0)
在我看来,PHP必须输出一些文本(char,error或warning?),或者你在send_contact2.php文件中使用了<?php
之前的char。这就是为什么标头不起作用的原因。请记住,必须在发送任何实际输出之前调用header()。
答案 2 :(得分:0)
OP在这里,设法最终对其进行排序
是邮件服务器问题,所以如果将来有人遇到此问题,请检查您的主机上的php设置,并确保它允许邮件()并确保您设置了一个电子邮件地址,您可以在其中发送发送电子邮件至您的服务器。
感谢帮助我调试的每个人