Письмо с сайта приходит в неправильной кодировке.

Klopopryg
На сайте с 29.12.2004
Offline
344
177
Форма обратной связи

<?php
if(isset($_POST['ok']))
{
$subject = 'Заявка с сайта "Сайт';
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';

$fio=htmlspecialchars($_POST['fio']);
$tel=htmlspecialchars($_POST['tel']);
$vid=htmlspecialchars($_POST['vid']);
$cost=htmlspecialchars($_POST['cost']);
$mail=htmlspecialchars($_POST['mail']);
$adres=htmlspecialchars($_POST['adres']);
$messag=htmlspecialchars($_POST['messag']);

$text= '<b>Ваше ФИО:</b> '.$fio.'
<br><br><b>Телефон:</b> '.$tel.'
<br><br><b>Вид бизнеса:</b> '.$vid.'
<br><br><b>Стоимость:</b> '.$cost.'
<br><br><b>E-mail:</b> '.$mail.'
<br><br><b>Адрес:</b> '.$adres.'
<br><br><b>Сообщение:</b> '.$messag;

$headers  = "Content-type: text/html; charset=windows-1251 \r\n";

if (mail('site@mail.ru', $subject, $text, $headers)) {echo "<b>Спасибо, ваша сообщение отправлено!</b>";} else {echo "<b>Error</b>";}
}
?> <form method="post"> 
<table width="100%" cellspacing="10" cellpadding="0" border="0" class="tab"> 
<tbody> 
<tr><td><b>Ваше ФИО*</b><br><br><input type="text" name="fio" size="40"></td> 
<td><b>Телефон*</b><br><br><input type="text" name="tel" size="40"></td></tr>
     
<tr><td><br><b>Вид бизнеса</b><br><br><input type="text" name="vid" size="40"></td>
<td><br><b>Стоимость</b><br><br><input type="text" name="cost" size="40"></td></tr>
     
<tr><td><br><b>E-mail</b><br><br><input type="text" name="mail" size="40"></td> 
<td><br><b>Адрес нахождения объекта:</b><br><br><input type="text" name="adres" size="40"></td></tr>
     
<tr><td colspan="2"><br><b>Описание:</b><br><br><textarea name="messag" cols="76" rows="8"></textarea><br><br><input type="submit" name="ok" value="Отправить" /> </td> </tr>
</tbody>
</table>

Файл с расширением "php"
Файл в кодировке UTF-8
Сервер UTF-8

На почту приходит заявка с буквами "крокозябрами". Латиница отображается верно, как и цифры. Но кириллица нет.


Ваше Р¤РРћ: Харитонов Роман Викторович
Телефон: +79163331969
Вид бизнеса: 123
Стоимость: 1243124
E-mail: mou-email@mail.ru
Адрес: 112 к.3 Варшавское шоссе
Сообщение: Хочу всё знать!

Как исправить?






Лучше выстрелить, перезарядить и еще раз выстрелить, чем светить фонариком и спрашивать - "кто тут?"
TB
На сайте с 16.01.2009
Offline
182
#1
в ней и приходит письмо 
charset=windows-1251
sergv
На сайте с 13.04.2006
Online
414
#2
Klopopryg :
$subject = '=?koi8-r?B?'
А это зачем?
https://REGHOME.ru - регистрация и продление доменов от 169₽ в российских и международных зонах по честным ценам без звездочек. (R01, WebNames, UK2). Принимаем Ю-Money, Visa, MasterCard, Мир
L
На сайте с 25.12.2013
Offline
317
#3
Дело в кодировке, меняйте ее при в скрипте отправки и смотрите на результат.
Недорогой, надежный и отзывчивый VPS хостинг ( https://bit.ly/3eXUnNN ) Проверенная пуш партнерка с ежедневными выплатами ( https://vk.cc/9wLSrL)
margo25
На сайте с 19.03.2017
Offline
55
#4
Сохраните скрипт через блокнот в формате ютф8, и будет вам счастье
BurundukPro - программа для автоматизации работы компьютера. Скачать можно на официальном сайте https://burundukpro.ru
sergv
На сайте с 13.04.2006
Online
414
#5
margo25 #:
Сохраните скрипт через блокнот в формате ютф8, и будет вам счастье
Не будет - на код-то смотрите.
А
На сайте с 09.10.2013
Online
100
#6
Попробуйте поменять строчку 
$headers  = "Content-type: text/html; charset=windows-1251 \r\n";

на

$headers = "Content-type: text/html; charset=UTF-8 \r\n";

M
На сайте с 04.12.2013
Offline
223
#7

Как сделать отправку письма?

Себе можно отправлять письмо без кодирования (заголовков это не касается), если оно не будет биться при транспортировке. В этом случае надо указать способ кодирования 8bit (для UTF и др. не-7-битных кодировок).

И нужно проверять существование всех POST-параметров и т.п. Вообще вы рисковый человек, раз используете такой г/код на сайте 😀

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

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