Просмотр полной версии : Проблема с кодировкой. Форма обратной связи.
Bashenko
24.11.2008, 09:41
Друзья, нашел в Сети пример формы обратной связи.
Четыре текстовых поля:
name
email
phone
message
Код на кнопке "Отправить":
on (release) {
if (name eq "" or phone eq "" or message eq "" or email eq "") {
stop();
} else {
loadVariablesNum("http://-------/form.php", 0, "POST");
gotoAndStop(2);
}
}
На кнопке "Очистить" (к нему вопросов нет, но для кучи)
on (release) {
name = "";
phone="";
message="";
email="";
}
Код в PHP-файле:
<?
$to = "mail@me.ru";
$msg = "$name\n\n";
$msg .= "$message\n\n";
mail($to, $phone, $msg, "From: My web site\nReply-To: $email\n");
?>
И в чем, тут, черт побери, дело?
Под маком в Сафари и Опере все прекрасно работает. Письма приходят на чистом русском.
А вот под виндой - кракозябры.
На текстовых полях стоит шрифт "_sans" - как семейство беззасечковых.
Однако, кракозябры тем не менее.
Что мне делать? Может я embend неправильно делаю? (щелкаю на текстовое поле, embend. Выбираю Cyrilic, basic Lanit, Numbers, Uppercase) и прописываю шрифт.
Сроки горят. Буду очень рад, если сможете помочь.
Облазил весь форум (в пределах доступного времени) – не нашел подобной проблемы.
embend такого слова нет.
Встраивание шрифта в флеш не сказывается на работе пхп.
Все дело в кодировке - в страничке html нужно прописать кодировку UTF-8 и видимо все.
nOobCrafter
24.11.2008, 17:35
**тут был плохой код**
Пропиши в первом кадре, это бяка, но все дело в ней. У меня такая же проблема, конретно щас пытаюсь найти решение, вот тема если хочешь посмотри http://demiart.ru/forum/index.php?showtopic=60439&view=findpost&p=1704945
nOobCrafter, забудьте, что useCodePage вообще существует. Советовать подобные вещи, это тоже самое, что выпускать обувь только 38 размера, кому-то налезет, а кому-то нет.
nOobCrafter
24.11.2008, 18:39
iNils я согласен на 100%, знаю чем это чревато, НО пока что я нашел только такой способ решения проблемы, он временный (я так думаю) но у чела сроки горят и по иде еэто должно помоч. Если есть еще идея то я с радостью их выслушаю
Об отправки почты (http://www.flasher.ru/forum/showthread.php?t=67377)
О кодировке aksios выше сказал.
Во флешsend_mc.onPress = function(){
LO = new LoadVars();
LO.mailmsg = text_txt.text;
LO.subj = "Юлие Файн";
LO.fn = fio_txt.text+" ("+tel_txt.text+")";
LO.mail = mail_txt.text;
LO.sendAndLoad("pismo.php",LO,"POST");}
В PHP <?
$mail = iconv("UTF-8", "koi8-r", $mail);
$fn = iconv("UTF-8", "koi8-r", $fn);
$mailmsg = iconv("UTF-8", "koi8-r", $mailmsg);
$subj = iconv("UTF-8", "koi8-r", $subj);
mail("my_adress@mail.ru", $subj, $mailmsg,"From: $fn <$mail>");
?>
nOobCrafter
25.11.2008, 12:56
гхым..У меня такой пхп:
<?php
$contact_name = $_POST['fname'];
$contact_subject = $_POST['lname'];
$contact_email = $_POST['email'];
$contact_message = $_POST['comments'];
$contact_name = iconv("UTF-8", "koi8-r", $contact_name);
$contact_subject = iconv("UTF-8", "koi8-r", $contact_subject);
$contact_email = iconv("UTF-8", "koi8-r", $contact_email);
$contact_message = iconv("UTF-8", "koi8-r", $contact_message);
mail("mymail@gmail.ru","Сообщение с сайта",
"От кого : " .$contact_name.
"\nТема : " .$contact_subject.
"\nE-mail : " .$contact_email.
"\nСообщение : " .$contact_message);
?>
Спс scarbo теперь все приходит на русском и фсо ок, НО тут возникла другая проблема, строчки "От кого", "Тема" и т.д. приходят кракозябрами.. Как с этим бороться?.. Пробовал пересохранять под разными кодировками, никакого эффекта. Стоит дефолтная ANSI.
Ещё бы, php-файл сохранен в ANSI, конвертирует он UTF-8 в KOI, отправляя в конечном итоге салат из собственной ANSI и KOI. Вот такая вот сборная солянка, почему нельзя было изначально работать только (только!) в UTF-8 — загадка.
nOobCrafter
25.11.2008, 14:12
Просто при сохрании пхп в UTF-8 приходит та же крокозябра, а при ANSI "Сообщение с сайта" приходит на русском языке, зато все остальные заголовки крокозябит((
Потому что не надо разводить салат из кодировок, не надо ничего конвертировать. Нужно сохранить php-файл в кодировке UTF-8, убрать напрочь конвертацию через iconv и добавить заголовок Content-Type с указанной кодировкой utf-8.
nOobCrafter
25.11.2008, 14:54
$encoding = "utf-8";
$header ="Content-type: text/html; charset=$encoding\r\n";
??? это?.. пробовал, проблема в том что я не знаю куда "$header" засунуть что бы корректно работало((( при вставке в графу mail, оно мне просто выводит эту строчку(((
Всё плохо. Понятно. Вот это сохранить в кодировке UTF-8:
<?php
$contact_name = $_POST['fname'];
$contact_subject = $_POST['lname'];
$contact_email = $_POST['email'];
$contact_message = $_POST['comments'];
mail("mymail@gmail.ru","Сообщение с сайта",
"От кого : " .$contact_name.
"\nТема : " .$contact_subject.
"\nE-mail : " .$contact_email.
"\nСообщение : " .$contact_message, "Content-Type: text/plain; charset=utf-8\r\n");
?>
И всё.
nOobCrafter
25.11.2008, 15:35
Угу спс помогло, только один нюанс, пропала тема — "Сообщение с сайта".
Еще вопрос какая разница между этим и тем как я делал:
<?php
$contact_name = $_POST['fname'];
$contact_subject = $_POST['lname'];
$contact_email = $_POST['email'];
$contact_message = $_POST['comments'];
$encoding = "utf-8";
$header ="Content-type: text/html; charset=$encoding\r\n";
mail("mymail@gmail.ru","Сообщение с сайта",
"От кого : " .$contact_name.
"\nТема : " .$contact_subject.
"\nE-mail : " .$contact_email.
"\nСообщение : " .$contact_message, $header);
?>
По моему все верно должно быть, но у меня просто в конце сообения выводило строчку Content-Type: text/plain; charset=utf-8\r\n ((
Вы привели в первый раз кусок из своего кода, предлагая, что остальное мы сами в мозгу воспроизведем. Ваш вариант аналогичен моему.
nOobCrafter
25.11.2008, 16:17
хз проверил щас, вроде бы все пашет, может где запятую забыл поставить может что еще, разница только в том что у тебя Content-Type: text/plain;, а у меня было Content-Type: text/html;. А как быть с темой?.. Как сделать что бы она отображалась? Тема - "Сообщение с сайта"
А тему надо специфически кодировать. Проще написать её на английском.
nOobCrafter
25.11.2008, 17:58
не не не, с кодировкой все ок! у меня ее просто невидно, даже графы такой нету((
От кого:
кому:
дата:
(тут должна быть строчка с темой но ее физически нет):
текст собщения:
Все остальное выводится просто прекрасно.
Если убрать строчка ", "Content-Type: text/plain; charset=utf-8\r\n"" то тема отображается, хоть и кракозябрами но есть. а если е еоставить то темы невидно.
Поле темы должно быть закодировано в формате BASE64 (если не ошибаюсь).
nOobCrafter
25.11.2008, 18:15
Угу, на англ. отображается намана, а с русским тема накрылась медным тазомполучается?... Всеравно спс большое.
to __etc, все в UTF-8 меня не спасло,при чтении почты с Outlook,там только кодировки помогли
Я не ратую за Outlook,но он стоит по умолчанию на Винде
Тема не стоит более детальной проработки - текст пришел, тема на английском, для формы обратной связи не критично. Я в форме обратной связи всегда ставлю название ресурса в качестве темы - имя домена латинскими буквами.
А аутлук - зло.
nOobCrafter
26.11.2008, 14:27
А аутлук - зло — +. Я считаю что дальнейшее развитие темы актуально лишь для саморазвития, ибо это может еще кой где приигодиться, так что если несложно может продолжим?
Ну поищите варианты, как кодировать заголовок.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.