Форма обратной связи. Некорректно отображается кириллица.

imil-1995

Новичок
Доброго времени суток. Имею код:

PHP:
<?php

$emailto = '[email protected]';
$fromName = 'MySite';                  
$mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;  
$subject = 'Contact Form';          


if(isset($_POST['emailto'])) {
    $emailto = $_POST['emailto'];
}

if(isset($_POST['fromname'])) {
    $fromName = $_POST['fromname'];
}


if(isset($_POST['subject'])) {
    $subject = $_POST['subject'];
}

$html = "";
$len = intval($_POST['len']);

if ($len){
    if (isset($_POST['fromname_label'])){
        $html .= htmlentities($_POST['fromname_label'], ENT_QUOTES, "UTF-8") . ": ";
        $html .= htmlentities($fromName, ENT_QUOTES, "UTF-8") . "<br>\n";
    }

    if (isset($_POST['fromemail_label'])){
        $html .= htmlentities($_POST['fromemail_label'], ENT_QUOTES, "UTF-8") . ": ";
        $html .= htmlentities($fromEmail, ENT_QUOTES, "UTF-8") . "<br>\n";
    }

    if (isset($_POST['subject_label'])){
        $html .= htmlentities($_POST['subject_label'], ENT_QUOTES, "UTF-8") . ": ";
        $html .= htmlentities($subject, ENT_QUOTES, "UTF-8") . "<br>\n";
    }

    for($i=0; $i<$len; $i++){
        if (isset($_POST['field'. $i .'_label'])){
            $html .= htmlentities($_POST['field'. $i .'_label'], ENT_QUOTES, "UTF-8") . ": ";
            $html .= htmlentities($_POST['field'. $i .'_value'], ENT_QUOTES, "UTF-8") . "<br>\n";
        }
    }

    $headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\n";
    if ($fromName != "" || $fromEmail != ""){
        $headers .= "From: " . $fromName . "<". $fromEmail .">\r\n";
    }
    $headers .= "Reply-To: " .  $fromEmail . "\r\n";

    $html = utf8_decode($html);

    if ($html && mail($emailto, $subject, $html, $headers))
        echo 'ok';
    else
        echo 'error';
} else {
    echo 'error';
}

?>
Проблема в следующем: Буквы латинского алфавита приходят с формы на почту в должном виде, но если вводить кириллицу - на почте кириллица отображается в виде вопросительных знаков.

Может кто подскажет как исправить? Заранее благодарю!
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
> utf8_decode($html);

utf8_decode и utf8_encode умеют работать только с latin1.
 

antson

Новичок
Партнер клуба
@imil-1995, @nefone,
Код:
if(isset($_POST['emailto'])) {
    $emailto = $_POST['emailto'];
}
mail($emailto, $subject, $html, $headers)
ничего не смущает ?
 

antson

Новичок
Партнер клуба
спам через форму можно рассылать ;)
всего лишь постить на одно лишнее поле - пиши кому угодно
 
Сверху