- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет. В 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;
?>
Подскажите, как исправить ошибку с кодировкой.
кодировка сайта windows-1251 ??? если да то добавте переменую напр
По идее, в идеале, должно выглядеть так:
$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);
Спасибо, буду пробовать
kornelpro добавил 15.05.2010 в 12:50
По идее, в идеале, должно выглядеть так:
$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);
Вот, спасибо, так спасибо. Ваша поправка решила мою проблему.
kornelpro, да на здоровье)
kornelpro, на заметку, неплохой онлайн генератор форм обратоной связи http://php-mail.ru
Спасибо! Но гугл юзать умею, и не просто так сам начал делать форму :)
kornelpro, посмотрите PHPMailer и закройте для себя вопрос отправки почты раз и навсегда.