помощь в php

incognito2007
На сайте с 13.02.2007
Offline
30
902

Здравствуйте.

Мне нужна помощь в php и я очень надеюсь на посетителей форума. Дело в том, что я совершенно не знакома с этим языком, но мне требуется использовать его в виде контактной формы на сайте.

Итак, проблема:

Код, который я внесла в контактную страницу (contact.html)

<form method="post" action="sendmail.php">

<!-- DO NOT change ANY of the php sections -->

<?php

$ipi = getenv("REMOTE_ADDR");

$httprefi = getenv ("HTTP_REFERER");

$httpagenti = getenv ("HTTP_USER_AGENT");

?>

<input type="hidden" name="ip" value="<?php echo $ipi ?>" />

<input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />

<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />

Your Name: <br />

<input type="text" name="visitor" size="35" />

<br />

Your Email:<br />

<input type="text" name="visitormail" size="35" />

<br /> <br />

<br />

Mail Message:

<br />

<textarea name="notes" rows="4" cols="40"></textarea>

<br />

<input type="submit" value="Send Mail" />

<br />

</form>

код, который вынесен в отдельный файл sendmail.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Sendmail Script</title>

</head>

<body>

<!-- Reminder: Add the link for the 'next page' (at the bottom) -->

<!-- Reminder: Change 'YourEmail' to Your real email -->

<?php

$ip = $_POST['ip'];

$httpref = $_POST['httpref'];

$httpagent = $_POST['httpagent'];

$visitor = $_POST['visitor'];

$visitormail = $_POST['visitormail'];

$notes = $_POST['notes'];

$attn = $_POST['attn'];

if (eregi('http:', $notes)) {

die ("Do NOT try that! ! ");

}

if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))

{

echo "<h2>Use Back - Enter valid e-mail</h2>\n";

$badinput = "<h2>Feedback was NOT submitted</h2>\n";

echo $badinput;

die ("Go back! ! ");

}

if(empty($visitor) || empty($visitormail) || empty($notes )) {

echo "<h2>Use Back - fill in all fields</h2>\n";

die ("Use back! ! ");

}

$todayis = date("l, F j, Y, g:i a") ;

$attn = $attn ;

$subject = $attn;

$notes = stripcslashes($notes);

$message = " $todayis [EST] \n

Attention: $attn \n

Message: $notes \n

From: $visitor ($visitormail)\n

Additional Info : IP = $ip \n

Browser Info: $httpagent \n

Referral : $httpref \n

";

$from = "From: $visitormail\r\n";

mail("xxxx@gmail.com", $subject, $message, $from);

?>

<p align="center">

Date: <?php echo $todayis ?>

<br />

Thank You : <?php echo $visitor ?> ( <?php echo $visitormail ?> )

<br />

Attention: <?php echo $attn ?>

<br />

Message:<br />

<?php $notesout = str_replace("\r", "<br/>", $notes);

echo $notesout; ?>

<br />

<?php echo $ip ?>

<br /><br />

<a href="contact.html"> Next Page </a>

</p>

</body>

</html>

Естественно адрес почты заменила на свой.

Проблема: письма, написанные на русском языке приходят вот в такой страшной кодировке "&#224;&#237;&#255;".

Ну и побочная проблема (не первая необходимость, но хотелось бы, чтобы работала по крайней мере опция IP): в нижней части письма, после замечательных каракуль, следующее сообщение:

Additional Info : IP = <?php echo $ipi ?>

Browser Info: <?php echo $httpagenti ?>

Referral : <?php echo $httprefi ?>

Как всё же заставить заработать эти опции?

Буду очень признательна за подробный ответ, ибо я совсем в этом ничего не понимаю....:no:

tommy-gung
На сайте с 22.11.2006
Offline
287
#1


$from = "From: $visitormail\r\n";

заменить на


$from = "Content-type: text/html; charset=windows-1251\r\nFrom: $visitormail\r\n";

где "windows-1251" - нужная кодировка письма

Здесь не могла быть ваша реклама
incognito2007
На сайте с 13.02.2007
Offline
30
#2

tommy-gung,

Огромное спасибо. Письма приходят в нормальной кодировке :)

PD
На сайте с 07.04.2008
Offline
5
#3

Additional Info : IP = <?php echo $ipi ?>


Browser Info: <?php echo $httpagenti ?>

Referral : <?php echo $httprefi ?>

Тут проблема в том, что файл contact.html не обрабатывается РНР.

Нужно, чтобы он имел расширение .php, или создать файл .htaccess, в котором написать

AddHandler application/x-httpd-php .html
incognito2007
На сайте с 13.02.2007
Offline
30
#4

php_dev,

ой, спасибо огромное! очень признательна за помощь :)

всё заработало

peterpro
На сайте с 14.11.2007
Offline
35
#5
php_dev:
Additional Info : IP = <?php echo $ipi ?>


Browser Info: <?php echo $httpagenti ?>

Referral : <?php echo $httprefi ?>


Тут проблема в том, что файл contact.html не обрабатывается РНР.
Нужно, чтобы он имел расширение .php, или создать файл .htaccess, в котором написать

AddHandler application/x-httpd-php .html

Вообще, второй совет (про .htaccess) - довольно вредный. Сам я не использовал подобную конструкцию, но гуру говорят, что если все html будут отправляться на интерператцию (даже без PHP -кода), то это немного замедлит сайт в целом.

Хотя, of course, все зависит от загрузки сервера в целом.

incognito2007
На сайте с 13.02.2007
Offline
30
#6

peterpro,

Нагрузка на сервер небольшая, поэтому не чувствуется.

Образовалась новая проблема.

В один прекрасный момент IP, Referral во всех полученных письмах стали появляться мои.

Глянула страницу, а там статично прописались вместо сообщений в скобках (IP = <мой ай-пи> ) мои данные. Вернула значение на IP = <?php echo $ipi ?> и в письмах опять пустота в этом пункте.....

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий