Моя форма PHP генерирует ошибки на сервере BlueHost - PullRequest
1 голос
/ 01 декабря 2011

Я создал контактную форму для своего сайта. Когда я нажимаю кнопку отправки, форма переходит на страницу с благодарностью, как и должна. Когда на странице благодарности отобразится изменение URL-адреса и будет добавлена ​​папка / info /. см. ниже:

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 Script:

<?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 ]

1 голос
/ 05 декабря 2011

Вот ссылка на очень полезный сайт для «де-кодирования»: http://validator.w3.org/ - при входе на вашу страницу появилось = 52 ошибок, 3 предупреждения (ов)

0 голосов
/ 01 декабря 2011

Это может иметь отношение к php-среде вашего хост-провайдера. Возможно, dirname ($ _ SERVER ['PHP_SELF']) возвращает неожиданный результат.

Как насчет замены перенаправления заголовка без полного пути, только страница:

header("Location: $sendto");

Если вы хотите увидеть, откуда из каталога отладки выводится дополнительный «info» dir:

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

Заменить заголовок (... на 3 строки выше. Результат можно скопировать здесь.

0 голосов
/ 01 декабря 2011

Проблема со ссылками в том, что если они такие ...

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

Они относятся к текущей странице. Вы можете решить свою проблему, указав их относительно корня сайта:

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