Кодировка в форме отправки

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
Вот код
PHP:
<head>
<?php
// send message
if($_POST[submit]) {
   
    // check for suspected injection strings
    foreach($_POST as $name => $value) {
        filter_string($value);
    }
   
    // check for unexpected newline characters
    foreach($_POST as $name => $value) {
        if($name != 'message') filter_string($value);
    }
   
    $_POST = safe_data($_POST, 'display');
   
    // check for required information
    if(!$_POST[name])
        $error .= 'The <strong>&#1048;&#1084;&#1103;</strong> &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1089;&#1077; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1077; &#1087;&#1086;&#1083;&#1103;.<br/>';
    if(!check_email($_POST[email]))
        $error .= 'The <strong>E-mail</strong> &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1089;&#1077; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1077; &#1087;&#1086;&#1083;&#1103;.<br/>';
    if(!$_POST[subject])
        $error .= 'The <strong>&#1053;&#1086;&#1084;&#1077;&#1088; &#1090;&#1086;&#1074;&#1072;&#1088;&#1072;</strong> &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1089;&#1077; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1077; &#1087;&#1086;&#1083;&#1103;.<br/>';
    if(!$_POST[message])
        $error .= 'The <strong>&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;</strong> &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1089;&#1077; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1077; &#1087;&#1086;&#1083;&#1103;.<br/>';
   
    // send message if no errors have occurred
    if(!$error) {
   
        $message = "&#1047;&#1072;&#1082;&#1072;&#1079; &#1087;&#1088;&#1080;&#1085;&#1103;&#1090;: ".date($conf[dformat].' '.$conf[tformat], time()+(3600*$conf[toffset]))."
 
Name: $_POST[name]
Email: $_POST[email]
Phone: $_POST[phone]
Adres: $_POST[adres]
kupon: $_POST[kupon]
Metod oplati: $_POST[contact]
 
$_POST[message]";
       
        // remove any punctuation from name to prevent email errors
        $_POST[name] = ereg_replace("[[:punct:]]", " ", $_POST[name]);
       
        mail($sendto, $_POST[subject], $message, "From:$_POST[name] <$_POST[email]>");
       
        $sent = true;
       
        // create summary of message to display
        $summary = "
        <strong>Sent:</strong>&nbsp;&nbsp;".date($conf[dformat].' '.$conf[tformat], time()+(3600*$conf[toffset]))."
       
        <p>&nbsp;&nbsp;$_POST[name]<br/>
        &nbsp;&nbsp;$_POST[email]<br/>
        &nbsp;&nbsp;$_POST[phone]</p>
        &nbsp;&nbsp;$_POST[adres]<br/>
        &nbsp;&nbsp;$_POST[kupon]</p>
       
        <p>$_POST[contact]</p>
       
        <p>&nbsp;&nbsp;$_POST[subject]</p>
       
        <p><br/>".nl2br($_POST[message])."</p>";
   
    }
 
}
 
?>
 
</head>
 
<div style='margin-bottom:10px;'>
   
 
 
<?php if($sent) { ?>
 
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td width="4"><img src="_l.gif" border="0"></td>
            <td><span lang="ru">
            <font face="Arial" style="font-size: 15pt" color="#87AE00">СПАСИБО
            ЗА ВАШУ ПОКУПКУ</font></span></td>
            <td width="4"><img src="_r.gif" border="0"></td>
        </tr>
    </table>
</div>
 
<p align="center"><font face="Arial" color="#333333">Теперь вы можете закрыть
это окно.</font></p>
 
<div style='margin-top:10px;'>
    <?php echo $summary; ?>
</div>
 
<?php } else { ?>
 
 
 
<form action='<?php echo $_SERVER[PHP_SELF]; ?>' method='post'>
<div style='margin-top:10px;'>
    <table border='0' cellpadding='0' cellspacing='0'>
   
        <tr>
            <td class='label'>&nbsp;</td>
            <td valign="middle">
            <div align="left">
                <table border="0" cellpadding="0" cellspacing="0">
                    <tr>
                        <td width="4"><img src="_l.gif" border="0"></td>
                        <td><span lang="ru">
                        <font face="Arial" style="font-size: 15pt;" color="#87AE00">
                        ОФОРМЛЕНИЕ ЗАКАЗА</font></span></td>
                        <td width="4"><img src="_r.gif" border="0"></td>
                    </tr>
                </table>
            </div>
            </td>
        </tr>
   
        <tr>
            <td class='label'>&nbsp;</td>
            <td>
            <p align="center"><font face="Arial" size="1" color="#959595">
            <span lang="ru">БУДЬТЕ ВНИМАТЕЛЬНЫ ПРИ ЗАПОЛНЕНИИ ПОЛЕЙ</span></font></td>
        </tr>
   
        <tr>
            <td class='label'>&nbsp;</td>
            <td><font face="Arial"><font color="#333333"><b><span lang="ru">
            <font style="font-size: 11pt">Имя, Фамилия, Отчесвто</font></span></b><font style="font-size: 11pt"><b><label for='name'>:</label></b><br>
            </font></font><span style="font-size: 11pt"><font color="#333333">
            <input style="border:1px solid #EEDDC8; height:30px" size="60" id='name' name='name' value='<?php echo $_POST[name]; ?>'/></font></span></font></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><font face="Arial"><font color="#333333"><b><label for='email'>
            <font style="font-size: 11pt">E<span lang="ru">-</span>mail </font>
            </label><font style="font-size: 11pt"><span lang="ru">адрес</span></font></b><label for='email'><font style="font-size: 11pt"><b>: </b><br>
            </font>
            </label></font><span style="font-size: 11pt"><font color="#333333"><input style="border:1px solid #EEDDC8; height:30px" style="height:30px;" size="60" id='email' name='email' value='<?php echo $_POST[email]; ?>'/></font></span></font></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><font face="Arial"><font color="#333333"><b><label for='phone'>
            <span lang="ru"><font style="font-size: 11pt">Номера телефона</font></span><font style="font-size: 11pt">:</font></label></b><font style="font-size: 11pt"><br>
            </font></font><span style="font-size: 11pt"><font color="#333333">
            <input style="border:1px solid #EEDDC8; height:30px" style="height:30px;" size="60" id='phone' name='phone' value='<?php echo $_POST[phone]; ?>'/></font></span></font></td>
        </tr>
       
                <tr>
            <td>&nbsp;</td>
            <td><font face="Arial"><font color="#333333"><b><label for="phone">
            <font style="font-size: 11pt"><span lang="ru">Страна, город, район,
            улица, № дома, № квартиры</span>, <span lang="ru">индекс</span>:</font></label></b><font style="font-size: 11pt"><br>
            </font></font><span style="font-size: 11pt"><font color="#333333">
            <input style="border:1px solid #EEDDC8; height:30px" style="height:30px;" size="60" id='phone' name='adres' value='<?php echo $_POST[adres]; ?>'/></font></span></font></td>
        </tr>
       
                <tr>
            <td>&nbsp;</td>
            <td><font face="Arial"><font color="#333333">
            <font style="font-size: 11pt"><br>
            </font></font>
            <label for='phone'><font style="font-size: 11pt"><span lang="ru">
            <b>
            <font color="#87AE00">Купон </font></b><font color="#87AE00">
            (введите номер скидки) </font></span></font>
            </label>
            <span lang="ru"><font style="font-size: 11pt" color="#87AE00">&nbsp;</font><font color="#FF3300" size="1"><a target="_blank" href="index.php?menu=rabota" style="text-decoration: none"><font color="#FF3300"><span >&#8594;
            ПОДРОБНЕЕ</span></font></a></font></span></span><label for='phone'><font style="font-size: 11pt"><span lang="ru"><b><font color="#333333"><br>
            </font></b></span></font>
            </label><span style="font-size: 11pt"><font color="#333333"><input style="border:1px solid #EEDDC8; height:30px" style="height:30px;" size="60" id='phone' name='kupon' value='<?php echo $_POST[kupon]; ?>'/></font></span></font></td>
        </tr>
       
        <tr>
            <td>&nbsp;</td>
            <td><b><label for="subject"><span lang="ru">
            <font face="Arial" style="font-size: 11pt" color="#333333">Номер
            товара</font></span></label></b><font face="Arial"><font color="#333333"><b><label for='subject'><font style="font-size: 11pt">:</font></label></b><font style="font-size: 11pt"><br>
            </font></font><span style="font-size: 11pt"><font color="#333333">
            <input id='subject' name='subject' value='<?php echo $_POST[subject]; ?>' style="border:1px solid #EEDDC8; height:30px" style="height:30px;" size="60"/></font></span></font></td>
        </tr>
       
        <tr>
            <td>&nbsp;</td>
            <td><font face="Arial">
            <font style="font-size: 11pt" color="#333333"><b><span lang="ru">
            Сообщение в свободной форме</span></b><br>
            </font><span style="font-size: 11pt">
            <font face="Arial" color="#333333">
            <textarea id='message' name='message' style="border:1px solid #EEDDC8; font-family:Arial; color:#808080" rows="5" cols="40" ><?php echo $_POST[message]; ?></textarea></font></span></font></td>
        </tr>
       
        <tr>
            <td>&nbsp;</td>
            <td>
                <font face="Arial"><font color="#333333">
                <label for="contact"><b><span lang="ru">
                <font style="font-size: 11pt">Способ оплаты</font></span></b><font style="font-size: 11pt"><b>:</b>&nbsp;
                </font>
                </label>
                </font><span style="font-size: 11pt"><font color="#333333">
                <select style="border:1px solid #EEDDC8; height:30px" style="height:30px;" id='contact' name='contact'>
                    <option value='&#1041;&#1072;&#1085;&#1082;&#1086;&#1074;&#1089;&#1082;&#1080;&#1081; &#1087;&#1077;&#1088;&#1077;&#1074;&#1086;&#1076;' <?php if($_POST[contact] == '&#1041;&#1072;&#1085;&#1082;&#1086;&#1074;&#1089;&#1082;&#1080;&#1081; &#1087;&#1077;&#1088;&#1077;&#1074;&#1086;&#1076;') echo "selected='selected'"; ?>>
                    Банковский перевод</option>
                    <option value='Western Union' <?php if($_POST[contact] == '&#1053;&#1072;&#1083;&#1086;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1087;&#1083;&#1072;&#1090;&#1105;&#1078;') echo "selected='selected'"; ?>>
                    Western Union</option>
                    <option value='&#1041;&#1083;&#1080;&#1094; &#1087;&#1077;&#1088;&#1077;&#1074;&#1086;&#1076;' <?php if($_POST[contact] == '&#1041;&#1083;&#1080;&#1094; &#1087;&#1077;&#1088;&#1077;&#1074;&#1086;&#1076;') echo "selected='selected'"; ?>>
                    Блиц перевод</option>
                    <option value='&#1053;&#1072;&#1083;&#1080;&#1095;&#1085;&#1099;&#1077;' <?php if($_POST[contact] == '&#1053;&#1072;&#1083;&#1080;&#1095;&#1085;&#1099;&#1077;') echo "selected='selected'"; ?>>
                    Наличные</option>
                    <option value='PayPal' <?php if($_POST[contact] == 'PayPal') echo "selected='selected'"; ?>>
                    PayPal</option>
                </select></font></span><font color="#333333"><font style="font-size: 11pt">
                </font>
                </font>
            <span lang="ru"><font style="font-size: 11pt" color="#87AE00">&nbsp;</font><font color="#FF3300" size="1">&#8594;
                </font><font color="#333333" size="1">
                <a href="index.php?menu=oplata" style="text-decoration: none" target="_blank"><font color="#FF3300">
                <span>ПОДРОБНЕЕ</span></font></a></font></span></font></td>
        </tr>
       
        <tr>
            <td></td>
            <td><font face="Arial"><span style="font-size: 11pt">
            <input type='submit' name='submit' value='&#1043;&#1054;&#1058;&#1054;&#1042;&#1054;' style="font-size: 10pt; font-weight: bold"/></span></font></td>
        </tr>   
       
    </table>
</div>
<input type='hidden' name='mode' value='<?php echo $_GET[mode]; ?>'/>
<input type='hidden' name='id' value='<?php echo $_GET[id]; ?>'/>
</form>
 
<?php } ?>

Какой код и куда нужно вставить, что бы на почту не приходили иероглифы?
 
Какой код и куда нужно вставить, что бы на почту не приходили иероглифы?
Можно обойтись другим способом.

Во-первых: Выставить в php файле по умолчанию кодировку UTF-8 (без BOM)
Во-вторых: Добавить .htaccess в корень сайта со следующим содержанием AddDefaultCharset utf-8

И все будет приходить без иероглифов.
 
Во-вторых: Добавить .htaccess в корень сайта со следующим содержанием AddDefaultCharset utf-8

А если у человека сайт в windows-1251 ?

лучше на форму
Код:
<?php header('Content-type: text/html; charset=utf-8'); ?>
 
ничего не помогло, нужно что бы текст приходил на почту в UTF-8, сам сайт в windows-1252
 
причем тут php header и .htaccess ? когда речЪ идет о почте, кодировку нужно указывать в хидере письма

Код:
$header = "From: \"".$_POST['name'] ."\" <".$_POST['email'].">\n";
$header .= "Content-type: text/plain; charset=\"utf-8\"";
mail($sendto, $_POST[subject], $message, $header);
 
причем тут php header и .htaccess ? когда речЪ идет о почте, кодировку нужно указывать в хидере письма

Код:
$header = "From: \"".$_POST['name'] ."\" <".$_POST['email'].">\n";
$header .= "Content-type: text/plain; charset=\"utf-8\"";
mail($sendto, $_POST[subject], $message, $header);
Не факт, что именно utf-8 используется.
Vave, определите вначале кодировку, которая в которую необходимо конвертировать письмо, затем укажите её кодом выше.
 
Извиняюсь за столь длительный ответ!
Сам сайт в кодировке windows-1251
Почтовый ящик, в кодировке UTF-8
По этому желательно, что бы письма приходили в кодировке UTF-8

В обычной форме отправки, мне предложили вставить этот код
PHP:
$additional_headers = 'MIME-Version: 1.0' . "\r\n".'Content-Type: text/plain; charset="windows-1251"' . "\r\n";
if(@mail($your_email,$email_subject,$email_content,$additional_headers)) {
Только как подобное прописать в форму, которой посвящен данный топик?
 
Назад
Сверху