我的php表单在bluehost服务器上生成错误

时间:2011-12-01 17:02:44

标签: php forms bluehost

我为自己的网站创建了一个联系表单。当我按下发送按钮时,表单会转到感谢页面。当感谢页面显示网址更改并添加文件夹/信息/时。见下文:

http://www.projectrefresh.net/info/thankyou.html

发生这种情况后,所有页面都被破坏,因为/ info /已添加且无法识别。

联系表单代码:

<form name="contact" method="POST" action="enquiryForm.php"> 
<p><b>Name</b><br>
</tr>
<tr>
<input type="text" name="Name" size=40>
</tr>
<tr>
<p><b>Your Email</b><br>
</tr>
<tr>
<input type="text" name="email" size=40>
</tr>
<tr>
<p><b>Company</b><br>
</tr>
<tr>
<input type="text" name="Company" size=40>
</tr>
<tr>
<p><b>Subject</b><br>
</tr>
<tr>
<input type="text" name="subject" size=40>
</tr>
<tr>
<p><b>Message</b><br>
</tr>
<tr>
<textarea cols=40 rows=10 name="message"></textarea>
</tr>
<tr>
<p><input type="submit" value=" Send ">
</tr>
</form>
</div>

PHP脚本:

<?php

$to="info@projectrefresh.net"; // what email address do you wish the email to be sent to?

$subject="Enquiry from website"; // what subject do you want the email to have

$sendto="thankyou.html"; // where do you want the visitor to be sent to afterwards?

//

// This is an UNSUPPORTED web form to email PHP script for usage by DiYhost.co.uk customers

//

$message = "This message has been sent from ".$_SERVER['HTTP_HOST']."\n\n\n";

while(list($var, $val)=each($HTTP_POST_VARS)){        // Get all variables

$message .= "[".$var."]: ".$val."\n\n";                // build the message body           

}

$message .= "\n\nThe person's IP address who sent this email is: ".$_SERVER['REMOTE_ADDR'];

// see http://www.php.net/manual/en/function.mail.php

mail($to, $subject, $message,

    "From: webmaster@".$_SERVER['SERVER_NAME']."\r\n"

  ."Reply-To: webmaster@".$_SERVER['SERVER_NAME']."\r\n"

  ."X-Mailer: PHP/" . phpversion());

// see http://www.php.net/manual/en/function.header.php

header("Location: http://".$_SERVER['HTTP_HOST']

                    .dirname($_SERVER['PHP_SELF'])

                    ."/".$sendto);

?>

3 个答案:

答案 0 :(得分:1)

以下是指向非常有用的“解码”网站的链接:http://validator.w3.org/ - 输入您的网页时出现了= 52个错误,3个警告

答案 1 :(得分:0)

链接的问题是如果它们是这样的......

<a href="index.html">Home</a>

它们与当前页面相关。您可以通过使它们相对于网站的根目录来解决您的问题:

<a href="/index.html">Home</a>

答案 2 :(得分:0)

它可能与您的主机提供商的php环境有关。 可能是dirname($ _ SERVER ['PHP_SELF']返回意外结果。

如何在没有完整路径的情况下替换标题重定向,只需要页面:

header("Location: $sendto");

如果你想看看额外的“info”目录从调试到输出的位置:

echo $_SERVER['HTTP_HOST'];
echo $_SERVER['PHP_SELF'];
echo dirname($_SERVER['PHP_SELF']);

替换标题(...与上述3行。您可以在此处复制结果。