Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6

Форма обратной связи на сайте присылает на е-мейл кракозябры

13.04.2015, 13:53. Показов 4351. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста, что сделать. Скрипт полностью работает, все как бы устраивает - единственная загвоздка - на е-мейл приходят кракозябры. Что нужно куда написать, подскажите - знаний практически ноль. Этот скрипт собрал из чужого и еле-еле наладил...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
header('Content-type: text/html; charset=utf-8');
$name=$_POST["name"];
$adress=$_POST["adress"];
$hot=$_POST["hot"]; 
$cool=$_POST["cool"]; 
$electric=$_POST["electric"]; 
 
if (isset ($name))
{
$name = substr($name,0,5); //Не может быть более 5 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($adress))
{
$adress = substr($adress,0,30); //Не может быть более 30 символов
if (empty($adress))
{
echo "<center><b>Не указан адрес !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$adress = "не указано";
}if (isset ($hot))
{
$hot = substr($hot,0,5); //Не может быть более 5 символов
if (empty($hot))
{
echo "<center><b>Не указаны показания счетчика горячей воды !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$hot = "не указано";
}if (isset ($cool))
{
$cool = substr($cool,0,5); //Не может быть более 5 символов
if (empty($cool))
{
echo "<center><b>Не указаны показания счетчика холодной воды!!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$cool = "не указано";
}
if (isset ($electric))
{
$electric = substr($electric,0,7); //Не может быть более 7 символов
if (empty($electric))
{
echo "<center><b>Не указаны показания счетчика электроэнергии!!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$electric = "не указано";
}
$i = "не указано";
if ($name == $i AND $adress == $i AND $hot == $i AND $cool == $i AND $electric == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "sunburst@inbox.ru";  
$subject = "Сообщение интернет-сайта ООО МВК-Триумф";
$message = "Имя пославшего:$name::::::::::Адрес:$adress::::::::::Показания счетчика горячей воды:$hot:::::::::Показания счетчика холодной воды:$cool::::::::::Показания счетчика электроэнергии:$electric";
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения<a href=index.php>Нажмите</a>, что бы вернуться на главную...>";
exit;
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2015, 13:53
Ответы с готовыми решениями:

Форма обратной связи присылает пустое письмо
Всем хорошего дня! Итак добавил на сайт форму обратной связи. Письмо на мейл мне приходит, но без введеных пользователем данных, вот такое:...

Форма обратной связи - PHP посылает кракозябры
Кириллица приходит вот в таком виде на почту апрапр &lt;?php /** *isset() - проверяет...

Форма обратной связи на сайте! КАК?
Всем привет! Пишу свой первый сайт! Сайт находится на локальном сервере Возникла необходимость сделать форму обратной связи. и тут я...

19
-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
13.04.2015, 14:22
Проверь кодировку файла.
Чтобы была UTF 8 (без BOM!!!!!!!)
0
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6
13.04.2015, 14:23  [ТС]
Сохраняю блокнотом и там в выпадающем списке кодировок выбираю utf-8. Опережая вопросы - в хтмл файле тоже кодировка утф-8
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
13.04.2015, 14:25
Вестин, на notpad++ сохраните UTF-8 без бом.
0
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6
13.04.2015, 14:27  [ТС]
не помогает способ сохранения блокнотом в утф-8... На почтовый сервер все равно кракозябры присылает... Майл.ру, кстати...
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
13.04.2015, 14:30
кодировка в mail.ru какой стоит?

Добавлено через 57 секунд
на браузере кодировку автоматическая уникод utf8 поставьте
0
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6
13.04.2015, 14:32  [ТС]
Надо чтобы в любом отображалось корректно. Как вы можете заметить по форме - ее будут открывать много разных людей...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
13.04.2015, 14:41
Вестин, попробуйте так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
header('Content-type: text/html; charset=utf-8');
$name=$_POST["name"];
$adress=$_POST["adress"];
$hot=$_POST["hot"]; 
$cool=$_POST["cool"]; 
$electric=$_POST["electric"]; 
 
if (isset ($name))
{
$name = substr($name,0,5); //Не может быть более 5 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($adress))
{
$adress = substr($adress,0,30); //Не может быть более 30 символов
if (empty($adress))
{
echo "<center><b>Не указан адрес !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$adress = "не указано";
}if (isset ($hot))
{
$hot = substr($hot,0,5); //Не может быть более 5 символов
if (empty($hot))
{
echo "<center><b>Не указаны показания счетчика горячей воды !!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$hot = "не указано";
}if (isset ($cool))
{
$cool = substr($cool,0,5); //Не может быть более 5 символов
if (empty($cool))
{
echo "<center><b>Не указаны показания счетчика холодной воды!!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$cool = "не указано";
}
if (isset ($electric))
{
$electric = substr($electric,0,7); //Не может быть более 7 символов
if (empty($electric))
{
echo "<center><b>Не указаны показания счетчика электроэнергии!!!<p>";
echo "<a href=5b.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$electric = "не указано";
}
$i = "не указано";
if ($name == $i AND $adress == $i AND $hot == $i AND $cool == $i AND $electric == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "sunburst@inbox.ru";  
$subject = "Сообщение интернет-сайта ООО МВК-Триумф";
$message = "Имя пославшего:$name::::::::::Адрес:$adress::::::::::Показания счетчика горячей воды:$hot:::::::::Показания счетчика холодной воды:$cool::::::::::Показания счетчика электроэнергии:$electric";
$headers = [
    'From: email@от-кого',
    'Reply-To: email@от-кого',
    'Content-type: text/plain; charset=utf-8'
];
 
mail ($to,$subject,$message, implode("\r\n", $headers)) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения<a href=index.php>Нажмите</a>, что бы вернуться на главную...>";
exit;
?>
0
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6
13.04.2015, 14:45  [ТС]
Ошибка в 86 строке... как понять - email@от-кого?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
13.04.2015, 14:57
Цитата Сообщение от Вестин Посмотреть сообщение
Ошибка в 86 строке
Я всё время забываю, что бывают древние версии php
Замените это:
PHP
1
2
3
4
5
$headers = [
    'From: email@от-кого',
    'Reply-To: email@от-кого',
    'Content-type: text/plain; charset=utf-8'
];
На:
PHP
1
2
3
4
5
$headers = array(
    'From: email@от-кого',
    'Reply-To: email@от-кого',
    'Content-type: text/plain; charset=utf-8'
);
Цитата Сообщение от Вестин Посмотреть сообщение
как понять - email@от-кого?
"От кого" это значит от чьего имени будем отсылать email. Он будет указываться в поле "От кого" на том же mail.ru.
Впишите туда свой email, а ещё лучше email, который создадите в панели управления хостингом.
0
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 6
13.04.2015, 15:02  [ТС]
Спасибо огромное. Кодировка выровнялась...
Парабелум, ты человечище. Огромное наше вам!!
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
13.04.2015, 15:13
Да не за что .
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 7
10.06.2015, 13:59
Братцы, помогите!

Сижу пару дней над этой проблемой и не понимаю в чем дело.
Есть небольшая форма отправки сообщений.
Сообщения в почту яндекс приходят нормальные, но на телефон через почтовый клиент приходят кракозябры,
причем только тело сообщения, заголовок отображается нормально. Остальные сообщения на русском языке отображаются корректно. так что проблема с телефоном исключена.

Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
   
$quantity = $_POST['quantity'];    
$email = $_POST['email'];
$tel = $_POST['tel'];
$name = $_POST['name'];
$secondname = $_POST['secondname'];
$lastname = $_POST['lastname'];
$postcode = $_POST['postcode'];
$country = $_POST['country'];
$region = $_POST['region'];
$city = $_POST['city'];
$address = $_POST['address'];
$message = $_POST['message'];
$from = 'From: Purif_Book_Form'; 
$to = 'slav-spb@yandex.ru'; 
$subject = 'Новый заказ на книгу "Чистое тело, ясный ум';
$human = $_POST['human'];
            
$body = "Поступил новый заказ на книгу 'Чистое тело, ясный ум':\n Количество заказанных книг: $quantity\n E-mail заказчика: $email\n Контактный номер телефона: $tel\n Имя: $name\n Отчество: $secondname\n Фамилия: $lastname\n Индекс: $postcode\n Страна: $country\n Регион: $region\n Город или населенный пункт: $city\n Адрес: $address\n Дополнительная информация: $message\n";
            if ($_POST['submit']) {
    if ($quantity != '' && $email != '' && $tel != '' && $name != '' && $secondname != '' && $lastname != '' && $postcode != '' && $country != '' && $city != '' && $address != '') {
        if ($human == '12') {                 
            
            if (mail ($to, $subject, $body, $from)) { 
            echo '<p class="form-message-ok">Благодарим Вас за заказ! Ваш запрос успешно отправлен в обработку!</p>';
        } else { 
            echo '<p class="form-message-false">Опс! Что-то пошло не так! Пожалуйста, проверьте правильность заполнения всех полей формы и повторите попытку еще раз!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '12') {
        echo '<p class="form-message-false">Неправильный ответ проверки защиты от спама! Пожалуйста, попробуйте еще раз!</p>';
    }
    } else {
        echo '<p class="form-message-false">Пожалуйста, заполните все обязательные поля формы и отправьте запрос еще раз!</p>';
    }
}
?>
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
10.06.2015, 14:17
Попробуйте указать заголовок с кодировкой:
PHP
1
2
$headers = 'Content-Type: text/plain; charset=utf8' . PHP_EOL;
if (mail ($to, $subject, $body, $from, $headers)) {
Добавлено через 27 секунд
Заместо utf8 укажите используемую Вами кодировку.
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 7
10.06.2015, 14:23
Так UTF-8 и использую...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
10.06.2015, 14:32
Ну вот значит вставьте код, как я показал.
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 7
10.06.2015, 14:35
Вставил.
То же самое.
Приходят кракозябры.
Вроде все правильно сделал.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
    $quantity = $_POST['quantity']; 
    $email = $_POST['email'];
    $tel = $_POST['tel'];
    $name = $_POST['name'];
    $secondname = $_POST['secondname'];
    $lastname = $_POST['lastname'];
    $postcode = $_POST['postcode'];
    $country = $_POST['country'];
    $region = $_POST['region'];
    $city = $_POST['city'];
    $address = $_POST['address'];
    $message = $_POST['message'];
    $from = 'From: Purif_Book_Form'; 
    $to = 'slav-spb@yandex.ru'; 
    $subject = 'Новый заказ на книгу "Чистое тело, ясный ум';
    $human = $_POST['human'];
    
    
    $body = "Поступил новый заказ на книгу 'Чистое тело, ясный ум':\n Количество заказанных книг: $quantity\n E-mail заказчика: $email\n Контактный номер телефона: $tel\n Имя: $name\n Отчество: $secondname\n Фамилия: $lastname\n Индекс: $postcode\n Страна: $country\n Регион: $region\n Город или населенный пункт: $city\n Адрес: $address\n Дополнительная информация: $message\n";
            if ($_POST['submit']) {
    if ($quantity != '' && $email != '' && $tel != '' && $name != '' && $secondname != '' && $lastname != '' && $postcode != '' && $country != '' && $city != '' && $address != '') {
        if ($human == '12') {                
           $headers = 'Content-Type: text/plain; charset=utf8' . PHP_EOL;
           if (mail ($to, $subject, $body, $from)) { 
            echo '<p class="form-message-ok">Благодарим Вас за заказ! Ваш запрос успешно отправлен в обработку!</p>';
        } else { 
            echo '<p class="form-message-false">Опс! Что-то пошло не так! Пожалуйста, проверьте правильность заполнения всех полей формы и повторите попытку еще раз!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '12') {
        echo '<p class="form-message-false">Неправильный ответ проверки защиты от спама! Пожалуйста, попробуйте еще раз!</p>';
    }
    } else {
        echo '<p class="form-message-false">Пожалуйста, заполните все обязательные поля формы и отправьте запрос еще раз!</p>';
    }
}
?>
0
261 / 236 / 161
Регистрация: 10.12.2011
Сообщений: 513
11.06.2015, 10:31
У вас:
PHP
1
2
$headers = 'Content-Type: text/plain; charset=utf8' . PHP_EOL;
if (mail ($to, $subject, $body, $from))
То что вам написали:
PHP
1
2
$headers = 'Content-Type: text/plain; charset=utf8' . PHP_EOL;
if (mail ($to, $subject, $body, $from, $headers))
Найдите одно отличие.
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
11.06.2015, 11:20
Leshak, а я даже не увидел. Ну люди, даже скопировать готовое решение не могут.
0
261 / 236 / 161
Регистрация: 10.12.2011
Сообщений: 513
11.06.2015, 12:09
С кем не бывает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.06.2015, 12:09
Помогаю со студенческими работами здесь

Форма обратной связи на сайте 1С-bitrix
Добрый день, нужно делать форму обратной связи в подпунктах меня на сайте(на одной странице сделал) но в подпунктах не получается так как...

Форма обратной связи на сайте. Как отправлять письмо на реальную почту?
Сделана форма обратной связи, php написан, все работает. Сайт на опенсервере. Письма отправляются верно, проверено через...

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

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена
Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена.

Форма обратной связи
Здравствуйте, у меня такая проблема - на сайте есть форма обратной связи, мне надо, чтобы при отправке перекидывало на какое-то время на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru