|
Модераторы: korob2001, ginnie |
|
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Помогите, пожалуйста, с возможным решением проблемы.
Нужен скрипт на Перл для формы обратной связи, корректно (в правильной кодировке, без аброкодабр) отсылающий данные из формы из разных броузеров. Сайт в utf-8. |
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
-------------------- менеджер по кодеврайтингу |
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
При переходе сайта на utf-8. Текст сообщения присылаемого на электронную почту из формы обратной связи стал нечитабельным. Я бы хотела найти решения этого вопроса.
|
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Blanka, а может код какой выложишь?
-------------------- менеджер по кодеврайтингу |
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Добавлено @ 14:26 код типовой ничего особенного. На html-страницу все выводится корректно. Заголовок письма "Оставлен контакт от клиента с сайта", тоже на нормальном русском, а текст сообщения УВЫ!! Это сообщение отредактировал(а) Blanka - 17.12.2013, 14:35 |
|||
|
||||
noize |
|
|||
5.18.2 Профиль Группа: Участник Сообщений: 89 Регистрация: 10.7.2010 Где: СПб Репутация: нет Всего: 3 |
вы, я смотрю, любите рисковать - код пишете без strict'ов и warnings'ов
|
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Это как?
Добавлено через 2 минуты и 47 секунд Код написан лет 10 назад. Я сейчас немного другими вопросами занимаюсь, поэтому в программировании меня можно сейчас назвать Чайником... Очень буду признательна, если укажите на недостатки... |
|||
|
||||
noize |
|
|||
5.18.2 Профиль Группа: Участник Сообщений: 89 Регистрация: 10.7.2010 Где: СПб Репутация: нет Всего: 3 |
добавьте в код вот это:
и от этого уже пляшите |
|||
|
||||
alezzz |
|
|||
сплю... Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 2 Всего: 14 |
хороший универсальный совет, подходит под любую проблему если в начале кода нет этих строчек . Blanka &send_mail; переместите за &print_page_end; перед open MAIL попробуйте для всех переменных ($n1, $ar...) перебрать такие варианты: Encode::_utf8_on($n1); или Encode::_utf8_off($n1); Sendmail-ом не отсылал, может у него какая неприязнь к utf или в какой он там кодировке отправляет по умолчанию. У меня работает автоматическая отправка через связку mutt - ssmtp, с utf были проблемы, но решались. |
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Спасибо. Можно, конечно, добавить. Правда программа элементарная
Добавлено через 2 минуты и 25 секунд alezzz, тоже спасибо. Попытаюсь сделать, как Вы рекомендуете. |
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Там на самом деле мож проще перекодировать в cp1251 при отправке!
-------------------- менеджер по кодеврайтингу |
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
alezzz, похоже действительно проблема в sendmail хостера. Перенесла файлы на другой хостинг для экспериментов над ними.
Вопрос с нечитабельностью текста писем снялся. Придется теперь много вопросов задавать тех. поддержке. Добавлено через 6 минут и 55 секунд Bulat, при отправке пробовала перекодировать accept-charset в тег form. Но IE на это не отреагировал, а в остальных браузерах помогло с текстом сообщения, но стало выводить "вопросики" при выводе введенных данных на страницу. |
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Я имел ввиду в момент отправки письма, через Encode -------------------- менеджер по кодеврайтингу |
|||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
||||
|
||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
И еще вопросик от чайничка.
? Можно ли в заголовок отправляемого мыла вписать что-то вроде print MAIL "Content-type: text/html; charset=utf-8"; |
|||
|
||||
Bulat |
|
||||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Писал по интуиции - не тестировал
Суть в Encode::encode('cp1251', Encode::decode('utf8',...))
Можно, но это не даст того эффекта, что вы ожидаете. -------------------- менеджер по кодеврайтингу |
||||
|
|||||
Blanka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Хоть мне никто и не ответил...
Но на самом деле, это помогло. print MAIL "Content-Type: text/plain; charset=utf-8\n"; сразу после строки open (MAIL, "| /usr/sbin/sendmail -t");
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Убивать сразу. Вообще, на почту и i18n в ней есть RFC, они несложно читаются (rfc2045, rfc2046, rfc2047, rfc2048, rfc2049), дополнительно для понимания общих механизмов можно просмотреть довольно муторный и пока вам неактуальный rfc2822, после прочтения стоит посмотреть в rfc-index на updates (которые для Вас тожэ не очень важны, на этом этапе). Если не умеете читать -- то можно было хотя бы послать пример письма из известной почтовой программы самому себе, экспортировать на диск в какой-нибудь простой mbox, открыть его текстовым редактором и сделать своё в точности как там получилось. Краткая выжымка: 1) В заголовках письма при передаче (в т.ч. при передаче в sendmail) все символы должны быть 7-битные. Никакого utf-8 или 1251 туда печатать нельзя. Письма от людей, которые этого не понимают, получают у меня сразу 2/3 скоринга для отправки в спам (и это по-моему умолчание в спамассасине), а если пробираются ко мне -- то с неизвестных адресов сразу отправляются в корзину по причине нечитаемого subject. Символы в нацыональных кодировках в заголовках кодируются методом, указанным в rfc2047. Например, можно каждое слово, содержащее что-нибудь кроме [0-9a-zA-Z] вместе с следующим пробелом заменяеть на строку =?utf-8?b?этослововbase64?= с пробелом после неё. Что такое base64 и где его берут в perl Вы, я думаю, представляете. 2) Большынство моих почтовых программ проигнорируют заголовок Content-type:, если не будет заголовка MIME-Version: 1.0 Добавьте. 3) Добавьте заголовок Content-transfer-encoding: 8bit Систем, которые без этого сломаются, а с этим воспримут -- ужэ очень мало, но во-первых, стандарт требует, а что Вам стоит, к тому жэ небольшой score в спамоловке можно себе скостить. |
|||
|
||||
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |