Проблема с кодировкой

123 4
Игорь К
На сайте с 07.02.2005
Offline
130
1175

Есть сайт m.tm.ua

С его формы заказа письма приходят с зябликами в теме и в теле письма - проблема кодировки.

Подскажите, плх, куда копать?

Пример:

Тема: Сообщение СЃ сайта m.tm.ua

Сообщение:

ФИО: Коса Ольга

Email: ххххххх@gmail.com

Тема: ТМ

Телефон: 0674300702

Сообщение:

44 клас. Медичні послуги;

Спасибо всем ответившим!

Грамотная регистрация торговой марки - ЗДЕСЬ (http://tm.ua/)
LEOnidUKG
На сайте с 25.11.2006
Offline
1550
#1

интересный вопрос... Допустим изменить кодировку отправки писем на utf-8

---------- Добавлено 08.10.2019 в 11:38 ----------

без кода, что там за модуль отправки писем, вообще не понимаю о чём топик.

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
S
На сайте с 30.09.2016
Offline
459
#2

Сам сайт, на котором форма, скорее всего в виндовой кодировке. Перекодировать в обработчике.

ЗЫ: нет, сайт в UTF-8. Тогда посмотреть кодировку обработчика.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Игорь К
На сайте с 07.02.2005
Offline
130
#3
Sitealert:
сайт в UTF-8. Тогда посмотреть кодировку обработчика.

Спасибо за совет!! Но, к сожалению, мне надо понять, что это за зверь "обработчик" (я не программист!) ? :)

Видимо речь идет о файле отвечающем за отправку? Сам файл в кодировке UTF-8

Прилагаю код этого фала:

------------------


<?php

$errorMSG = "";

// NAME
if (empty($_POST["name"])) {
$errorMSG = "Name is required ";
} else {
$name = $_POST["name"];
}

// EMAIL
if (empty($_POST["email"])) {
$errorMSG .= "Email is required ";
} else {
$email = $_POST["email"];
}

// MSG SUBJECT
if (empty($_POST["msg_subject"])) {
$errorMSG .= "Subject is required ";
} else {
$msg_subject = $_POST["msg_subject"];
}

// Phone Number
if (empty($_POST["phone_number"])) {
$errorMSG .= "Number is required ";
} else {
$phone_number = $_POST["phone_number"];
}


// MESSAGE
if (empty($_POST["message"])) {
$errorMSG .= "Message is required ";
} else {
$message = $_POST["message"];
}


$EmailTo = "boss@iz.ua";

$Subject = "Сообщение с сайта m.tm.ua";

// prepare email body text
$Body = "";
$Body .= "ФИО: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Тема: ";
$Body .= $msg_subject;
$Body .= "\n";
$Body .= "Телефон: ";
$Body .= $phone_number;
$Body .= "\n";
$Body .= "Сообщение: ";
$Body .= $message;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body);

// redirect to success page
if ($success && $errorMSG == ""){
echo "success";
}else{
if($errorMSG == ""){
echo "Something went wrong :(";
} else {
echo $errorMSG;
}
}

?>
webiumpro
На сайте с 20.03.2017
Offline
38
#4

Передавайте заголовки с кодировкой:


$headers = "Content-Type: text/html; charset=UTF-8";
$success = mail($EmailTo, $Subject, $Body, $headers);
Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
Игорь К
На сайте с 07.02.2005
Offline
130
#5
webiumpro:
Передавайте заголовки с кодировкой:
А куда вставить этот код?
webiumpro
На сайте с 20.03.2017
Offline
38
#6

Игорь К, У вас часть этого кода уже есть. Найдите строчку под комментарием //send email и замените ее на эти две строчки.

GoRSS
На сайте с 29.07.2013
Offline
113
#7

Позже пришлю. И пост надо экранировать

WebBear 2.9 ( https://seoarsenal.ru ) - массовый поиск дропов по тематике.
S
На сайте с 30.09.2016
Offline
459
#8
Игорь К:
А куда вставить этот код?

Никуда его не надо вставлять. Почта нормально отправляется. Там же есть кириллические слова, и они передаются правильно: "Тема", "Сообщение".

Я попробовал поотправлять тестовые сообщения. Проблема в том, что на сервер отправляются кривые данные.

Неправильно формируется AJAX-запрос, надо править файл /assets/js/contact-form-script.js.

Gerga
На сайте с 02.08.2015
Offline
89
#9

Игорь К, после "<?php" установить эту функцию:


mb_internal_encoding('UTF-8');
S
На сайте с 30.09.2016
Offline
459
#10

В общем, конечно, дурацкое занятие - заниматься дистанционной правкой фрагмента чужого сайта, но мне кажется, что нужно заменить функцию submitForm() в файле /assets/js/contact-form-script.js

      function submitForm(){

var str = $("#contactForm").serialize();

$.ajax({
type: "POST",
url: "assets/php/form-process.php",
data: str,
success : function(text){
if (text == "success"){
formSuccess();
} else {
formError();
submitMSG(false,text);
}
}
});
}
123 4

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