Semenov-Nikolay
@Semenov-Nikolay

В чем может быть проблема с кодировкой на Joomla?

Здравствуйте. Сделал обратную связь для сайта. Все работает,сообщения приходят,но проблема в том,что приходят они кракозябрами. Главное,что в описании письма все нормально отображается,а когда откроешь кракозябры. Дело в кодировке,но я проверил везде стоит одинаковая кодировка.Как можно это исправить,чтобы сообщение отображалось русскими буквами?

Прикрепляю части кода файла (кодировки в файле и код обратной связи)
<?php defined('_JEXEC') or die; header("Content-Type: text/html; charset=utf-8");?>

<div id="openModal" class="modalDialog">
	<div>
		<a href="#close" title="Закрыть" class="close">X</a>
		<h2>Модальное окно</h2>
			<form name="MyForm" action="#openModal" method="post"><br>
			<input name="name" type="text" placeholder="Имя" /><br>
			<input name="tel" type="phone" placeholder="Телефон" /><br>
			<input name="email" type="email" placeholder="Email" /><br>
			<textarea name="body"  placeholder="Ваше сообщение"></textarea><br>
			<input type="submit" value="Отправить заявку" id="btnpng4" />
			</form>
			<?php
			if (isset($_POST["email"])){
			if (isset($_POST["name"])) {$name = $_POST["name"];}
			if (isset($_POST["email"])) {$email = $_POST["email"];}
			if (isset($_POST["tel"])) {$tel = $_POST["tel"];}
			if (isset($_POST["body"])) {$body = $_POST["body"];}

			if($name=="" or $email=="" or $tel=="" or $body==""){ // Проверяем на заполненность всех полей.
				echo "Заполните все поля";
			}else{
				$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
				$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
			$to = "email"; // Ваш email адрес
			$subject = "Сообщение c сайта СибКом"; // тема письма 
			$headers .= "Content-Type: text/html; charset=utf-8";
			$headers .= "From: Создание сайтов Trust Code"; // Отправитель письма
			$message = "
			Имя: $name<br>
			E-mail: $email<br>
			Телефон: $tel<br>
			Текст: $body<br><br>

			
			IP отправителя: $ip<br>
			Браузер отправителя: $brose<br>
			"; 
			$send = mail($to, $subject, $message, $headers);


			 if ($send == "true")
			 {
			 echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.";
			 }
			 else
			 {
			 echo "Не удалось отправить, попробуйте снова!";
			 }
			}
			}
			?>
	</div>
</div>


Также скринншот, в каком виде приходит письмо на почту.
59ed63d60b065178422556.jpeg59ed63ea027d0025487432.jpeg
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
$headers .= "Content-Type: text/html; charset=utf-8";
$headers .= "From: Создание сайтов Trust Code"; // Отправитель письма

А переносы на новую строку между строчками кто будет добавлять? У вас строчки слепляются в одну
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы