Astra.CMS

 

 

Форум » Проблемы

Неверная кодировка при отправлении переменных на почту

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

Автор Текст сообщения
Пришвин Сергей

Пришвин Сергей
Сообщений: 37

Суть: на сайте есть форма: заполняем поля формы -> нажимаем кнопку отправления -> админ получает письмо на почту. Происходит это под управлением php-скрипта.

Вот код формы на главной странице:

<form method="post" action="mail.php">
    <div class="input-long"><input type="text" onBlur="doDefault(this)" onFocus="doClear(this)" style="width: 200px; height: 23px; text-align:center; font-weight: bold; color: #999;" value="Имя, возраст" name="name" /></div>
    <br />
    <div class="input-long"><input type="text" onBlur="doDefault(this)" onFocus="doClear(this)" style="width: 200px; height: 23px; text-align:center; font-weight: bold; color: #999;" value="Телефон" name="mess" /></div>
    <br />
    <div class="input-long"><input type="text" onBlur="doDefault(this)" onFocus="doClear(this)" style="width: 200px; height: 23px; text-align:center; font-weight: bold; color: #999;" value="E-mail" name="email" /></div>
    <br />
    <!--<div class="button"><a href="#"><img width="200" border="0" alt="" src="templates/mysite/images/button.jpg" /></a></div>--> <input type="submit" value="" style="width: 200px; margin-top: 37px; height: 49px; background: url('templates/mysite/images/button.jpg') no-repeat; border: none;" />
</form>
Код подгружаемого с главной страницы php-файла mail.php:

<?php
...
$to = "admin@mail.ru";
$subject = "Новое письмо с сайта";
$message = "Имя пославшего: $name\r\nТелефон пославшего: $mess\r\nЭлектронная почта: $email";
...
?>
Отправка работает. Другое дело, что на емейл приходит информация в неверной кодировке. Если файл mail.php сохранен в кодировке ANSI, то приходит следующее:


А если в UTF-8, как рекомендовано для a-cms, то приходит вот это:


Вопрос: как это можно победить?
 
aristoc

admin
Сообщений: 1159

Ваш скрипт не имеет никакого отношения к cms.
 
Пришвин Сергей

Пришвин Сергей
Сообщений: 37

Если вдруг кому пригодится, вот решение.

Надо в php-скрипте перед отправкой переменной на почту, перекодировать ее с помощью функции:

$name = iconv("UTF-8", "CP1251", $name);
wink
 
aristoc

admin
Сообщений: 1159

Либо просто сам файл скрипта сохранить в utf кодировке. )

Зачем вообще с этим заморачиваться, если есть специальный модуль обратной связи, для отправки писем.
 
Пришвин Сергей

Пришвин Сергей
Сообщений: 37

admin писал(а):
Либо просто сам файл скрипта сохранить в utf кодировке. )
Я сохранял файл скрипта в кодировке UTF-8 и на почту приходили кроказябры.  Пробовал разные варианты кодировки.

admin писал(а):
Зачем вообще с этим заморачиваться, если есть специальный модуль обратной связи, для отправки писем.
Наверное, я извращенец  lol
 

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.