Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mail encode variable
 
 автор: LINKIN   (19.06.2008 в 12:06)   письмо автору
 
 

charset=windows-1251 стоит на странице отправки почты. отправка таки:
<?php 
$action
=$_POST['action'];
$mail_from=$_POST['mail_from'];
$mail_msg=$_POST['mail_msg'];
if (!empty(
$action))
{
    if(!empty(
$mail_from))
    {
        if(!
preg_match("/^[\da-z\._-]+@[\da-z\._-]+\.[a-z]{2,6}$/i"$mail_from))
            {
                echo(
"Введите адрес электронной почты в виде address@server.coom"); exit();
            }
    
$mail_from substr($_POST["mail_from"],0,32);
    
$mail_from trim($mail_from);
    
$mail_from htmlspecialchars($mail_from);
    
$mail_subject "From site feedback";
    
$mail_msg substr($_POST["mail_msg"],0,1024);
    
$mail_msg htmlspecialchars($mail_msg);
    
$headers="From: {$_POST['mail_from']}";      
    if(
mail("reaktor.net.ua"$mail_subject$mail_msg$headers)) 
        {
        echo(
"Сообщение успешно отправлено <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        } 
    else
        {
        echo(
"При отправлении сообщения произошла ошибка! Вы можете попробовать отправить сообщение просто по адресу <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        }
    } 
else
        {
        echo(
"Введите адрес для обратной связи! <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        }
}
?>

сообщение приходит ??????

   
 
 автор: Zend72   (19.06.2008 в 12:14)   письмо автору
 
   для: LINKIN   (19.06.2008 в 12:06)
 

А разве не вот так?
if(mail("feedback@reaktor.net.ua", $mail_subject, $mail_msg))
Или вот так
if(mail($mail_from, $mail_subject, $mail_msg))
А у вас
mail("reaktor.net.ua", $mail_subject, $mail_msg, $headers))

   
 
 автор: LINKIN   (19.06.2008 в 12:24)   письмо автору
 
   для: Zend72   (19.06.2008 в 12:14)
 

я стер адрес.

   
 
 автор: LINKIN   (19.06.2008 в 12:28)   письмо автору
 
   для: LINKIN   (19.06.2008 в 12:06)
 

отправляется английским отлично

   
 
 автор: Zend72   (19.06.2008 в 12:40)   письмо автору
 
   для: LINKIN   (19.06.2008 в 12:28)
 

Возможно это то, что вы ищете?
Как изменить кодировку в письме?

   
 
 автор: LINKIN   (19.06.2008 в 13:06)   письмо автору
 
   для: Zend72   (19.06.2008 в 12:40)
 

    $mail_msg = convert_cyr_string($mail_msg, "w", "k");  

такой отказует аналогичный

   
 
 автор: Zend72   (19.06.2008 в 13:17)   письмо автору
 
   для: LINKIN   (19.06.2008 в 13:06)
 

Там вот так написанор было:
$mail_msg = nl2br(convert_cyr_string(stripslashes($mail_msg),'w','k'));

   
 
 автор: LINKIN   (19.06.2008 в 13:01)   письмо автору
 
   для: LINKIN   (19.06.2008 в 12:28)
 

    $headers.="From: {$_POST['mail_from']}\r\n";
    $headers.="Content-type: text/plain; charset=windows-1251\r\n"

таки вновь вопросы

   
 
 автор: LINKIN   (19.06.2008 в 13:08)   письмо автору
 
   для: LINKIN   (19.06.2008 в 13:01)
 

меняю браузером - отказуется

   
 
 автор: Zend72   (19.06.2008 в 13:32)   письмо автору
 
   для: LINKIN   (19.06.2008 в 13:08)
 

Мне тестить неначем, но момоему должно работать...
<?php  
$action
=$_POST['action']; 
$mail_from=$_POST['mail_from']; 
$mail_msg=$_POST['mail_msg']; 
if (!empty(
$action)) 

    if(!empty(
$mail_from)) 
    { 
        if(!
preg_match("/^[\da-z\._-]+@[\da-z\._-]+\.[a-z]{2,6}$/i"$mail_from)) 
            { 
                echo(
"Введите адрес электронной почты в виде address@server.coom"); exit(); 
            } 
    
$mail_from substr($_POST["mail_from"],0,32); 
    
$mail_from trim($mail_from); 
    
$mail_from htmlspecialchars($mail_from); 
    
$mail_subject "From site feedback"
    
$mail_msg substr($_POST["mail_msg"],0,1024); 
    
$mail_msg htmlspecialchars($mail_msg);
    
$mail_msg nl2br(convert_cyr_string(stripslashes($mail_msg),'w','k')); 
    
$headers "Content-type: text/plain; charset=windows-1251\r\n";       
    if(
mail($mail_from$mail_subject$mail_msg$headers))  
        { 
        echo(
"Сообщение успешно отправлено <br><a href=\"javascript:history.go(-1)\"  
class=\"text\">Вернуться назад</a>."
); 
        }  
    else 
        { 
        echo(
"При отправлении сообщения произошла ошибка! Вы можете попробовать отправить сообщение просто по адресу <br><a href=\"javascript:history.go(-1)\"  
class=\"text\">Вернуться назад</a>."
); 
        } 
    }  
else 
        { 
        echo(
"Введите адрес для обратной связи! <br><a href=\"javascript:history.go(-1)\"  
class=\"text\">Вернуться назад</a>."
); 
        } 

?>

   
 
 автор: Zend72   (19.06.2008 в 13:19)   письмо автору
 
   для: LINKIN   (19.06.2008 в 13:01)
 

Это понятно:
 
    $headers = "Content-type: text/plain; charset=windows-1251\r\n"

А вот это что-то не то:
   $headers = "From: {$_POST['mail_from']}\r\n";

И без вот этого .= !!!

   
 
 автор: LINKIN   (19.06.2008 в 14:35)   письмо автору
 
   для: Zend72   (19.06.2008 в 13:19)
 

Кто есть поопытнее

   
 
 автор: LINKIN   (19.06.2008 в 14:35)   письмо автору
 
   для: LINKIN   (19.06.2008 в 14:35)
 

просто конкатенация установленая

   
 
 автор: Zend72   (19.06.2008 в 14:37)   письмо автору
 
   для: LINKIN   (19.06.2008 в 14:35)
 

>просто конкатенация установленая
Зачем она там? Это ж HTTP-заголовок "Content-type: text/plain; charset=windows-1251\r\n"
А $headers = "From: {$_POST['mail_from']}\r\n"; Будет содержать имейл адрес и какой отношение он имеет к HTTP- заголовкам?

   
 
 автор: Zend72   (19.06.2008 в 14:53)   письмо автору
3 Кб
 
   для: Zend72   (19.06.2008 в 14:37)
 

Кстати мой вариант кода работает! Таки затестил )))
Только нужно писать не Content-Type: text/plain; charset=windows-1251\r\nContent-Type: text/plain; charset=KOI8-R\n
И все по русски будет )

   
 
 автор: Zend72   (19.06.2008 в 15:06)   письмо автору
 
   для: LINKIN   (19.06.2008 в 14:35)
 

>Кто есть поопытнее
Да я не опытный, но во всяком случае e-mail адреса вместо HTTP-заголовков не отправляю))

   
 
 автор: Trianon   (19.06.2008 в 15:41)   письмо автору
 
   для: Zend72   (19.06.2008 в 13:19)
 

>А вот это что-то не то:
> $headers = "From: {$_POST['mail_from']}\r\n";
>И без вот этого .= !!!

И что Вам не понравилось в этой строке?

Я почти уверен, что совсем не то, что здесь плохо.
Синтаксически строка абсолютно корректная. И .= там не требуется.

   
 
 автор: Zend72   (19.06.2008 в 15:46)   письмо автору
 
   для: Trianon   (19.06.2008 в 15:41)
 

>Синтаксически строка абсолютно корректная. И .= там не требуется.
Я и говорю не требуется.
Мне там не понравилось то, что в этой переменной хранится e-mail адрес, а уважаемый автор ее вместо Content-type: text/plain; charset=windows-1251\r\n отослать собирался (см. Выше)


 $headers.="From: {$_POST['mail_from']}\r\n"; 
    $headers.="Content-type: text/plain; charset=windows-1251\r\n"

   
 
 автор: BinLaden   (19.06.2008 в 15:49)   письмо автору
 
   для: Zend72   (19.06.2008 в 15:46)
 

> Я и говорю не требуется

Странно, что тогда Вам не понравилось тут:
>А вот это что-то не то:
>
   $headers = "From: {$_POST['mail_from']}\r\n";


>И без вот этого .= !!!

В приведенном Вами участке кода ".=" и нет.

   
 
 автор: Zend72   (19.06.2008 в 15:50)   письмо автору
 
   для: BinLaden   (19.06.2008 в 15:49)
 

А в этом участке кода есть ... (см. Выше шестой пост...)
 $headers.="From: {$_POST['mail_from']}\r\n"; 
    $headers.="Content-type: text/plain; charset=windows-1251\r\n"

   
 
 автор: LINKIN   (19.06.2008 в 22:22)   письмо автору
 
   для: Zend72   (19.06.2008 в 15:50)
 

открывает белка, вдруг

   
 
 автор: AcidTrash   (19.06.2008 в 23:40)   письмо автору
 
   для: LINKIN   (19.06.2008 в 22:22)
 

>открывает белка, вдруг
Бросьте курить траву или с белкой завязывайте! :)

   
 
 автор: Trianon   (19.06.2008 в 22:43)   письмо автору
 
   для: Zend72   (19.06.2008 в 15:46)
 

>Мне там не понравилось то, что в этой переменной хранится e-mail адрес, а уважаемый автор ее вместо Content-type: text/plain; charset=windows-1251\r\n отослать собирался (см. Выше)

Ах это...
Ну да. Автор жжет. Я как-то привык уже.

Прошу прощения. Не с той цитатой соотнес, и в результате не понял смысла.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования