Форма обратной связи на php

K
На сайте с 26.10.2009
Offline
8
931

Всем привет. В php я особенно сильно не разбираюсь, поэтому прошу совета.

Суть вопроса в том, что есть контактная форма для посетителей сайта. Скрипт отсылает данные, но в неверной кодировке. Всякие крякозябры получаются, причем то, что вбивает пользователь - приходит нормально, а то, к чему относится его вбитая информация - нифига не понятно

Вот сам код скрипта.

<?php

$xxx =$_POST["xxx"];

$name=$_POST["name"];
$email=$_POST["email"];
$mess=$_POST["mess"];
if (isset ($name))
{
$name = substr($name,0,20);
if (empty($name))
{
echo "<center><b>Не указано имя.<p>";
echo "<a href=contact.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($email))
{
$email = substr($email,0,20);
if (empty($email))
{
echo "<center><b>Не указан e-mail.<p>";
echo "<a href=contact.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$email = "не указано";
}
if (isset ($mess))
{
$mess = substr($mess,0,1000);
if (empty($mess))
{
echo "<center><b>Нет текста вопроса.<p>";
echo "<a href=contact.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$mess = "не указано";
}
$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "test@sainttex.ru";
$subject = "вопрос от посетителя сайта";

$message = "Имя:$name:Электронный адрес:$email:Сообщение:$mess:IP-адрес:$REMOTE_ADDR";
mail ($to,$subject,$message) or print "Не могу отправить письмо.";
echo "<center><b>Спасибо за отправку вашего сообщения<br><a href=index.htm>Нажмите</a>, чтобы вернуться на Главную страницу сайта";
exit;
?>

Подскажите, как исправить ошибку с кодировкой.

Мне лично, хотелось бы, чтобы репутация было отлична от нуля, но если не судьба, то не судьба. Если вам не нравится как я общаюсь, оставьте своё мнение при себе.
sashka_
На сайте с 27.01.2010
Offline
103
#1

кодировка сайта windows-1251 ??? если да то добавте переменую напр


$headers = "Content-type: text/html; charset=windows-1251 \r\n";
и при отправке
mail ($to,$subject,$message,$headers)
Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
stiff_max
На сайте с 08.05.2010
Offline
4
#2

По идее, в идеале, должно выглядеть так:

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Content-type: text/html; charset=widows-1251' . "\r\n"; // Кодировка

$headers .= 'From: Site Name <mail@site.name>' . "\r\n"; // Адрес, который будет отображаться в поле "От кого".

mail ($to, $subject, $message, $headers);

Качественно разрабатываю PHP-приложения (скрипты, парсеры, CMS, модули DLE, Joomla и мн. др.) и верстаю (/ru/forum/496345). Цены низкие, сроки — короткие. Прикольные, стильные, ржачные майки с надписями! (http://www.footbolochka.com/)
K
На сайте с 26.10.2009
Offline
8
#3

Спасибо, буду пробовать

kornelpro добавил 15.05.2010 в 12:50

stiff_max:
По идее, в идеале, должно выглядеть так:

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=widows-1251' . "\r\n"; // Кодировка
$headers .= 'From: Site Name <mail@site.name>' . "\r\n"; // Адрес, который будет отображаться в поле "От кого".

mail ($to, $subject, $message, $headers);

Вот, спасибо, так спасибо. Ваша поправка решила мою проблему.

stiff_max
На сайте с 08.05.2010
Offline
4
#4

kornelpro, да на здоровье)

4NT1P0V
На сайте с 31.01.2009
Offline
66
#5

kornelpro, на заметку, неплохой онлайн генератор форм обратоной связи http://php-mail.ru

=)
K
На сайте с 26.10.2009
Offline
8
#6

Спасибо! Но гугл юзать умею, и не просто так сам начал делать форму :)

sabotage
На сайте с 14.02.2007
Offline
192
#7

kornelpro, посмотрите PHPMailer и закройте для себя вопрос отправки почты раз и навсегда.

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