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

Не получается настроить кодировку формы обратной связи

03.09.2013, 14:01. Показов 4320. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
После вставки на сайт формы обратной связи, при ошибке или удачном выполнении скрипта, должен выводиться текст на русском, а выводится с какими-то вопроса. Не подскажите что делать? И еще до встраивания скрипта на сайт в теме письма приходило Имя - которое ввел отправитель(пользователь сайта), а теперь не понятных 2 символа,в чем может быть проблема?
Скрипт прилагаю(проблема с кодировкой в файле mail.php):
Mail.php
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
<?php
 
include('kcaptcha/kcaptcha.php');
session_start();
require_once("config.php");
 
 
if ($_POST['act']== "y")
{
    if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring'])
    {
        
        if (isset($_POST['posName']) && $_POST['posName'] == "")
        {
         $statusError = "$errors_name";
        }
        elseif (isset($_POST['posEmail']) && $_POST['posEmail'] == "")
        {
         $statusError = "$errors_mailfrom";
        }
        elseif(isset($_POST['posEmail']) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$/", $_POST['posEmail']))
        {
         $statusError = "$errors_incorrect";
 
         unset($_POST['posEmail']);
        }
        elseif (isset($_POST['posText']) && $_POST['posText'] == "")
        {
         $statusError = "$errors_message";
        }
 
elseif (!empty($_POST))
{   
 $headers  = "MIME-Version: 1.0\r\n";
 $headers .= "Content-Type: $content  charset=$charset\r\n";
 $headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
 $headers .= "From: \"".$_POST['posName']."\" <".$_POST['posEmail'].">\r\n";
 $headers .= "X-Mailer: My Send E-mail\r\n";
 
 mail("$mailto","$subject","$message","$headers");
 
 unset($name, $posText, $mailto, $subject, $message);
 
 $statusSuccess = "$send";
}
 
       }else{
             $statusError = "$captcha_error";
             unset($_SESSION['captcha_keystring']);
        }
}
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Обратная связь</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <link href="test/main12.css" rel="stylesheet" type="text/css" media='screen,projection' />
    
</head>
<body>
    <center>
    <img src="logo.png" alt="" />
<p id="emailSuccess">
        <strong style="color:green;"><?php echo "$statusSuccess" ?></strong>
    </p>
<p id="emailError">
        <strong style="color:red;"><?php echo "$statusError" ?></strong>
    </p>        
    <input class="buttonSend" onclick="window.history.back();" type="button" value="Вернуться назад"/>
    </div>
    
        </center>
</body>
</html>
Config.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$mailto = "почта@mail.ru";
$charset = "windows-1251";
$subject = "Заказ обеда";
$content = "text/plain";
$message = $_POST['posText'];
$statusError = "";
$statusSuccess = "";
 
$errors_name = 'Введите ваше имя';
$errors_mailfrom = 'Введите свой E-mail адрес';
$errors_incorrect = 'Заполните правильно Ваш E-mail адрес';
$errors_message = 'Введите ваш номер телефона!';
$captcha_error = 'Проверьте правильность ввода защитного кода';
$send = 'Поздравляем! Ваш заказ оформлен!<br> Мы свяжимся с вами в ближайшее время!';
?>
То что встроено на странице(форма)
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
        <form action="./mail.php" method="post" id="cForm">
        <input type="hidden" name="act" value="y" />
                    <form>
                    <fieldset id="inputs">
                    <label for="posName"><b>Ваше имя:</b></label><font size="2">
                <input class="text" type="text" size="25" name="posName" id="posName" />
                <label for="posEmail"><b>Ваш E-mail адрес:</b></label><font size="2">
                <input class="text" type="text" size="25" name="posEmail" id="posEmail" />
                <label for="posText"><b>Ваш телефон:</b></label><font size="2">
                <input class="text" type="text" size="25" name="posText" id="posText" />
                <label for="posCaptcha"><b>Текст на изображении</b>:</label><font size="2">Если вам не понятен текст на изображении обновите страницу, нажав F5<br></font><img src="kcaptcha?<?php echo session_name()?>=<?php echo session_id()?>"><br><input class="text" type="text" size="25" name="keystring" id="keystring" />
                <label>
                    <center><button action="mail.php" class="submit" type="submit" name="selfCC" id="selfCC"> Заказать обед!</button></center>
 
                    </fieldset>
        </form>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.09.2013, 14:01
Ответы с готовыми решениями:

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

Как настроить форму обратной связи?
Требуется помощь. Пытаюсь поставить форму обратной связи на сайт. При этом форма стала, окно вызывается, поля заполняются, письма якобы...

Как настроить форму обратной связи под себя? (файлы внутри)
Взял одностраничник и хочу настроить форму чтобы сообщения приходили на мою почту... где нужно указывать свою почту? index.txt - html...

6
 Аватар для TAB
215 / 215 / 73
Регистрация: 12.03.2013
Сообщений: 485
03.09.2013, 18:18
PHP
1
2
3
4
5
6
<?php
header('Content-Type: text/html; charset=windows-1251');
 
include('kcaptcha/kcaptcha.php');
session_start();
require_once("config.php");
Отсутствие «;» после $content в стр. 35:
PHP
1
$headers .= "Content-Type: $content; charset=$charset\r\n";
0
5 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 19
03.09.2013, 19:06  [ТС]
Цитата Сообщение от TAB Посмотреть сообщение
PHP
1
2
3
4
5
6
<?php
header('Content-Type: text/html; charset=windows-1251');
 
include('kcaptcha/kcaptcha.php');
session_start();
require_once("config.php");
Отсутствие «;» после $content в стр. 35:
PHP
1
$headers .= "Content-Type: $content; charset=$charset\r\n";
Большое спасибо, но в e-mail сообщении все равно пишет в теме какие-то: Заказ обеда - краказяблики.
и e-mail введенный на сайте не пишет( что с этим сделать?
0
 Аватар для TAB
215 / 215 / 73
Регистрация: 12.03.2013
Сообщений: 485
03.09.2013, 19:40
Скорее всего у файла config.php кодировка utf-8, а нужна windows-1251 (ANSI).

Добавление имени отправителя в тему сообщения:
PHP
1
2
$subject = $_POST['posName'] . '. ' . $subject;
mail("$mailto","$subject","$message","$headers");
Или e-mail в тему:
PHP
1
2
$subject = $_POST['posEmail'] . '. ' . $subject;
mail("$mailto","$subject","$message","$headers");
Или как ссылка:
PHP
1
2
$subject = '<a href=mailto:"' . $_POST['posEmail'] . '">' . $_POST['posName'] . '</a>. ' . $subject;
mail("$mailto","$subject","$message","$headers");
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.09.2013, 19:45
Цитата Сообщение от illya_pritex Посмотреть сообщение
PHP
1
if ($_POST['act']== "y")
PHP
1
if (isset($_POST['act']) && $_POST['act']== "y")
Цитата Сообщение от illya_pritex Посмотреть сообщение
PHP
1
mail("$mailto","$subject","$message","$headers");
PHP
1
mail($mailto,$subject,$message,$headers);
И везде, где вы запихали переменные в двойные кавычки - удаляйте кавычки.
Цитата Сообщение от illya_pritex Посмотреть сообщение
Заказ обеда
Данные в UTF-8 (причем, судя по символам в начале текста - файл с меткой BOM), соответственно, и данные тоже, а вы их отправляете как windows-1251. Поменяйте windows-1251 на utf-8, кодировку файла смените на UTF-8 without BOM (например, через Notepad++, только в нем "преобразовать", а не "кодировать"), а $subject в mail() замените на такой
PHP
1
'?=UTF-8?B' . base64_encode($subject) . '?='
0
4 / 3 / 2
Регистрация: 03.09.2013
Сообщений: 141
03.09.2013, 20:43
PHP
1
2
3
4
5
6
7
8
9
10
11
$title = "Заголовок письма\n";
$msg .= " Строка 1 \n";
$msg .= " Строка 2 \n";
...
$msg .= " Строка n \n";
$mymail = "ммм@мыло.ru";
$to = "".$_POST['email'].""; // или прямо указать адрес, на который нужно отправить письмо
$from = "From: =?windows-1251?B?". base64_encode("Информация с Вашего сайта или иной заголовок"). "?= < $mymail >\n";
$from .= "X-Sender: < $mymail >\n";
$from .= "Content-Type: text/plain; charset=windows-1251\n";
mail ($to, $title, $msg, $from);
У мня так и все ОК
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.09.2013, 20:54
Цитата Сообщение от wladim Посмотреть сообщение
У мня так и все ОК
у вас сам файл не в UTF-8
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2013, 20:54
Помогаю со студенческими работами здесь

Формы обратной связи?
Здравствуйте, помогите пожалуйста создать две формы обратной связи! Чтобы благодаря первой, посетитель мог отправить только свой адрес...

Формы обратной связи
Доброго времени суток. Подскажите как сделать несколько форм обратной свзяи. Имеются 4 страницы - для каждой должны быть свои формы....

2 формы обратной связи
Дело вот в чем. Имеется форма обратной связи. Работает хорошо. Сделал 2-ю с измененным 1 полем. При отправки формы - присылает 2...

Как настроить отправку двух разных форм обратной связи на одной странице?
Всем привет! Есть две формы обратной связи в модальном окне на одной странице, &quot;оставить заявку&quot; и &quot;заказать...

Не получается настроить связи
Здравствуйте. 1. Не получается создать связь. Возникает ошибка: Не обнаружен уникальный индекс для адресуемого поля главной страницы....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru