Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 23 Май, 2012, 10:03:27

Страниц: [1]
Печать
Автор Тема: Русские символы не отображаются в письме, отправленным php-скриптом  (Прочитано 1618 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
reload39    ↓ 
23 Сентябрь, 2007, 08:04:36
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

Всем привет!
Я очень плохо знаю php. Практически не знаю. Очень прошу объяснять подробно.
Сайт выполнен в кодировке iso-8859-5. Менять ее крайне нежелательно.
 
вот часть скрипта:
 
<?
$tomail = "...";
$subject = "....";
$message = "Name: $name
Email: $email
Company name.....
......";
mail($tomail,$subject,$message,"Content-Type: text/html; charset=Utf-8"); #пробовал разные кодировки и разные почтовые ящики#
?>
 
Результат один и тот же- все, что было введено на русском превращается в "????????". Англ. буквы и цифры отображаются нормально.
 
И еще один вопрос)
 
В моей форме есть пункт, где нужно выбрать из списка один или более элементов.
На почту приходит лишь нижний элемент. Что делать?
Записан
ghost    ↓ 
23 Сентябрь, 2007, 08:21:54 , спустя 17 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

1. http://ru.php.net/manual/ru/function.convert-cyr-string.php
2. http://ru.php.net/variables.external (Пример 12-10. Более сложные переменные формы)
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
reload39    ↓ 
23 Сентябрь, 2007, 09:28:28 , спустя 1 час 6 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

Второй пример не понял, а первый понял не до конца. Получается, что мне нужно конвертировать строку, например, из iso-8859-5 в windows-1251. А где в моем скрипте строка? Т.е. куда вставить эту команду..) Понимаю, что вопрос звучит глупо, но я с php сталкиваюсь первый раз- не знаю ни синтаксиса, ни общих правил, но скрипт очень нужен.
Записан
ghost    ↓ 
24 Сентябрь, 2007, 12:34:27 , спустя 3 часа 5 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

тебе нужно сконвертировать $subject, $message
хотя с $subject-ом отдельные грабли, почитай здесь http://forum.pyha.ru/topic/50.0
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
reload39    ↓ 
24 Сентябрь, 2007, 01:28:46 , спустя 54 минуты 19 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

С темой письма проблем нет, т.к. она на английском.
Вот так примерно получается?:
<?
$tomail = "...";
$subject = "....";
$message = "Name: $name
Email: $email
Company name.....
......";
$message = "convert_cyr_string ( $message, i, w )";
mail($tomail,$subject,$message,"Content-Type: text/html; charset=windows-1251");
?>
 
p/s: спасибо за помощь!
« Последнее редактирование: 25 Сентябрь, 2007, 12:11:28 от reload39 » Записан
reload39    ↓ 
25 Сентябрь, 2007, 12:17:08 , спустя 22 часа 48 минут 22 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

Нашел расширенный вариант этой ф-ии и сконвертировал заголовок, кот. теперь на русском. Все получилось!
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "i","k")).'?=';
 
Потом то же проделал с $message и на почту пришло "=?koi8-r?B?TmFtZTogDQpFbWFpbDogDQpDb21wYW55IG5hbWU6IA0KTmFtZSw......"
 
$message = '=?koi8-r?B?'.base64_encode(convert_cyr_string($message, "i","k")).'?=';
Почему так?
Записан
ghost    ↓ 
25 Сентябрь, 2007, 01:10:12 , спустя 53 минуты 4 секунды
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

c message так делать не надо, просто конвертни его в нужную кодировку, как и раньше.
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
reload39    ↓ 
25 Сентябрь, 2007, 04:38:46 , спустя 15 часов 28 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

Раньше я $message не конвертировал. Как это сделать правильно?
Записан
ghost    ↓ 
25 Сентябрь, 2007, 05:12:04 , спустя 33 минуты 18 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

$message = convert_cyr_string ( $message, i, w );
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
reload39    ↓ 
25 Сентябрь, 2007, 05:46:47 , спустя 34 минуты 43 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 6
Сила слова: 0

На mail.ru все приходит! Оказалось, что играет роль и почтовая программа (или вариант, когда почту проверяют через сайт провайдера)..
Вот рабочий скрипт:
<?
$tomail = "mail@url.ru";
$subject = "Можно на русском!";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "i","k")).'?=';
$message = "
/Name: $name               <br>
/Email: $email             <br>
"
;
$message = convert_cyr_string ( $message, "i","k");
mail($tomail,$subject,$message, "Content-Type: text/html; charset=koi8-r");
?>
 
Огромне спасибо, ghost!!!
Записан
Страниц: [1]
Печать
 

Перейти в: