所以我尝试在两个不同的服务器上发布一个带有PHP联系表单的页面,但我无法让它们完美地工作。
服务器1:
提交后返回500 internal error
页面
我联系了网络支持,他们回复说我有:
来自脚本' index.php':标题错误的标题:
我的index.php代码如下:
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$query = $_POST['message'];
$email_from = $name.'<'.$email.'>';
$to="testemail@email.com";
$subject="test subject";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from."\r\n";
$message="
Name:
$name
<br>
Email:
$email
<br>
Message:
$query
";
if(mail($to,$subject,$message,$headers))
header("Location:../contact.php?msg=Successful Submission!<br />
Thank you for contacting us.");
else
header("Location:../contact.php?msg=Error To send Email !");
}
?>
服务器2:
将我链接到我的&#34;感谢您的页面&#34;正确,但它显示
&#34;错误发送电子邮件!&#34;代替
&#34;成功提交!&#34;
非常感谢任何帮助或建议!
答案 0 :(得分:1)
问题似乎是标题位置重定向调用,它应提供完整的URL,例如:
header("Location: http://www.example.com");
根据浏览器的最佳努力处理相关网址,您的浏览器显然不喜欢../,因此“糟糕标题”投诉。
根据php.net,official URL spec页面会在FromBody页面上注明。
答案 1 :(得分:1)
我认为问题出在这一部分:
if(mail($to,$subject,$message,$headers))
header("Location:../contact.php?msg=Successful Submission!<br />
Thank you for contacting us.");
else
header("Location:../contact.php?msg=Error To send Email !");
具体在header();
<br />
中会建议一个名为&#34;&gt;的文件。感谢您与我们联系。&#34; 退房:http://www.w3schools.com/tags/ref_urlencode.asp;
还在每个标题后加exit();
以防止进一步执行脚本