Проблема с кодировкой в Форме Обратной связи

198
15 октября 2018, 23:50

подскажите пож-та есть такой код php для форма обратной связи, но есть 2 проблемы:

1) Когда приходит письмо от ФОС в графе кому Иероглифы 2) Когда заполняешь форму на сайте, подсказки(типа Вы забыли написать фамилию или например Сообщение отправлено) тоже пишутся Иероглифами. Подскажите пож-та где в коде косяк =(

<?php session_start();
// Enter your Name here!
$yourname = "Cemtorg";
// Enter your Email Address here!
$youremail = "zaocemtorg@gmail.com";
// Enter your Desired Email Subject!
$mailsubject = "Сообщение от формы обратной связи";
// Allowed file types add file extensions!
$allow_types = array ('image/pjpeg','image/gif','image/tiff','image/jpeg','image/png','application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/pdf','aplication/xpdf','binary/octet-stream','application/x-rar-compressed','application/zip');
// Maximum file size for attachments in KB.
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB
$max_file_size = 1024 * 1024 *2;
$firstname = htmlentities(strip_tags(trim($_POST["firstname"])));
$lastname = htmlentities(strip_tags(trim($_POST["lastname"])));
$useremail = htmlentities(strip_tags(trim($_POST["useremail"])));
$usersubject = htmlentities(strip_tags(trim($_POST["usersubject"])));
$usermessage = htmlentities(strip_tags(trim($_POST["usermessage"])));
$department = htmlentities(strip_tags(trim($_POST["department"])));
$verification = htmlentities(strip_tags(trim($_POST["verification"])));
if (empty($firstname)) {
    $text = "Внимание! Вы забыли написать Ваше имя";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли написать Ваше имя</div>';
} elseif (empty($lastname)) {
$text = "Внимание! Вы забыли написать Фамилию";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли написать Фамилию</div>';
} elseif (empty($useremail)) {
$text = "Внимание! Вы забыли указать Email";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли указать Email</div>';
} elseif (!preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$useremail)) {
$text = "Внимание! Вы забыли написать нормальный Email";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли написать нормальный Email</div>';
} elseif (empty($usersubject)) {
$text = "Внимание! Вы забыли написать Тему сообщения";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли написать Тему сообщения</div>';
} elseif (empty($usermessage)) {
$text = "Внимание! Вы забыли написать Сообщение";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли написать Сообщение</div>';
} elseif (empty($department)) {
$text = "Внимание! Укажите кому вы хотите отправить письмо";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Укажите кому вы хотите отправить письмо</div>';
} 
//elseif (empty($_FILES['userfile1']['name'])) {
//$text = "Внимание! Вы забыли выбрать файл";
//    echo '<div class="contact-error-message"><i class="icon-close"></i>', iconv("UTF-8", "cp1251//TRANSLIT", "windows-1251", $text),'</div>'; } 
//elseif (array_search($_FILES['userfile1']['type'], $allow_types) === false) {
//$text = "Внимание! Вы можете выбрать файлы только - Images & Psd, Doc Docx Pdf Rar Zip";
 //   echo '<div class="contact-error-message"><i class="icon-close"></i>', iconv("UTF-8", "cp1251//TRANSLIT", "windows-1251", $text),'</div>';} 
 elseif ($_FILES['userfile1']['size'] > $max_file_size) {
$text = "Внимание! Максимальный размер файла болжен быть не более - 2048 KB";
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Максимальный размер файла болжен быть не более - 2048 KB</div>';
} elseif (empty($verification)) {
 $text = "Внимание! Вы забыли ввести код";   
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Вы забыли ввести код</div>';
} elseif ($verification != '70') {
 $text = "Внимание! Введите правелиный код";   
    echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Введите правелиный код</div>';
} else {
    $random_file1 = uniqid();
    $finalname1 = $random_file1.$_FILES['userfile1']['name'];
    if ($_FILES['userfile1']['error'] == 0) {
        move_uploaded_file($_FILES['userfile1']['tmp_name'], '../upload/' .$finalname1);
    $mailOptionSMTP = false;
    if ($mailOptionSMTP == true) {
    require 'class.autoload.php';
    require 'message.php';
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';
    $mail->Host = 'your-smtp-host';
    $mail->Port = 465;
    $mail->Username = 'your-smtp-username';
    $mail->Password = 'your-smtp-password';
    $mail->IsHTML(true);
    $mail->From = $useremail;
    $mail->CharSet = "UTF-8"; "windows-1251";
    $mail->FromName = $firstname . $lastname;
    $mail->Encoding = "base64";
    $mail->Timeout = 200;
    $mail->ContentType = "text/html";
    $mail->addAddress($youremail, $yourname);
    $mail->Subject = $mailsubject;
    $mail->AddAttachment('../upload/'.$finalname1);
    $mail->Body = $message;
    $mail->AltBody = "Для просмотра этого сообщения используйте HTML";
    $recipients = false;
    if ($recipients == true) {
        $recipients = array(
            "example@example.com" => "Имя получателя",
            "example@example.com" => "Имя получателя",
        );
        foreach ($recipients as $email => $name) {
            $mail->AddBCC($email, $name);
        }
    }
    if ($mail->Send()) {
        require 'automessage.php';
        $automail = new PHPMailer();
        $automail->IsSMTP();
        $automail->SMTPAuth = true;
        $automail->SMTPSecure = 'ssl';
        $automail->Host = 'your-smtp-host';
        $automail->Port = 465;
        $automail->Username = 'your-smtp-username';
        $automail->Password = 'your-smtp-password';
        $automail->From = $youremail;
        $automail->FromName = $yourname;
        $automail->isHTML(true);
        $automail->CharSet = "UTF-8"; "windows-1251";
        $automail->Encoding = "base64";
        $automail->Timeout = 200;
        $automail->ContentType = "text/html";
        $automail->AddAddress($useremail, $firstname . $lastname);
        $automail->Subject = "Мы получили ваше сообщение с сайта";
        $automail->Body = $automessage;
        $automail->AltBody = "Для просмотра этого сообщения используйте HTML";
        if ($automail->Send()) {
            // Email has sent successfully.
            $text = "Поздравляем! Ваше сообщение отправленно.";
            echo '<div class="contact-success-message"><i class="icon-checkmark"></i>',iconv("UTF-8", "cp1251//TRANSLIT", "windows-1251", $text),'</div>';
        } else {
            // Email have an Error.
            $text = "Внимание! Произошла ошибка.";
            echo '<div class="contact-error-message"><i class="icon-close"></i>', iconv("UTF-8", "cp1251//TRANSLIT", "windows-1251", $text),' - '.$mail->ErrorInfo;'</div>';
        }
    }
} else {
    require 'class.autoload.php';
    require 'message.php';
    $mail = new PHPMailer();
    $mail->isSendmail();
    $mail->IsHTML(true);
    $mail->From = $useremail;
    $mail->CharSet = "UTF-8"; "windows-1251";
    $mail->FromName = $firstname . $lastname;
    $mail->Encoding = "base64";
    $mail->Timeout = 200;
    $mail->ContentType = "text/html";
    $mail->addAddress($youremail, $yourname);
    $mail->Subject = $mailsubject;
    $mail->AddAttachment('../upload/'.$finalname1);
    $mail->Body = $message;
    $mail->AltBody = "Для просмотра этого сообщения используйте HTML";
    $recipients = false;
    if ($recipients == true) {
        $recipients = array(
            "example@example.com" => "Имя получателя",
            "example@example.com" => "Имя получателя",
        );
        foreach ($recipients as $email => $name) {
            $mail->AddBCC($email, $name);
        }
    }
    if ($mail->Send()) {
        require 'automessage.php';
        $automail = new PHPMailer();
        $automail->isSendmail();
        $automail->From = $youremail;
        $automail->FromName = $yourname;
        $automail->isHTML(true);
        $automail->CharSet = "UTF-8"; "windows-1251";
        $automail->Encoding = "base64";
        $automail->Timeout = 200;
        $automail->ContentType = "text/html";
        $automail->AddAddress($useremail, $firstname . $lastname);
        $automail->Subject = "Мы получили ваше сообщение с сайта Cemtorg.ru";
        $automail->Body = $automessage;
        $automail->AltBody = "Для просмотра этого сообщения используйте HTML";
        if ($automail->Send()) {
            // Email has sent successfully.
            $text = "Поздравляем! Ваше сообщение отправленно.";
            echo '<div class="contact-success-message"><i class="icon-checkmark"></i>Поздравляем! Ваше сообщение отправленно.</div>';
        } else {
            // Email have an Error.
            $text = "Внимание! Произошла ошибка.";
            echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Произошла ошибка. - '.$mail->ErrorInfo;'</div>';
        }
    }
  }
} else {
{
    require 'class.autoload.php';
    require 'message.php';
    $mail = new PHPMailer();
    $mail->isSendmail();
    $mail->IsHTML(true);
    $mail->From = $useremail;
    $mail->CharSet = "UTF-8"; "windows-1251";
    $mail->FromName = $firstname . $lastname;
    $mail->Encoding = "base64";
    $mail->Timeout = 200;
    $mail->ContentType = "text/html";
    $mail->addAddress($youremail, $yourname);
    $mail->Subject = $mailsubject;
    $mail->Body = $message;
    $mail->AltBody = "Для просмотра этого сообщения используйте HTML";
    $recipients = false;
    if ($recipients == true) {
        $recipients = array(
            "example@example.com" => "Имя получателя",
            "example@example.com" => "Имя получателя",
        );
        foreach ($recipients as $email => $name) {
            $mail->AddBCC($email, $name);
        }
    }
    if ($mail->Send()) {
        require 'automessage.php';
        $automail = new PHPMailer();
        $automail->isSendmail();
        $automail->From = $youremail;
        $automail->FromName = $yourname;
        $automail->isHTML(true);
        $automail->CharSet = "UTF-8"; "windows-1251";
        $automail->Encoding = "base64";
        $automail->Timeout = 200;
        $automail->ContentType = "text/html";
        $automail->AddAddress($useremail, $firstname . $lastname);
        $automail->Subject = "Мы получили ваше сообщение с сайта Cemtorg.ru";
        $automail->Body = $automessage;
        $automail->AltBody = "Для просмотра этого сообщения используйте HTML";
        if ($automail->Send()) {
            // Email has sent successfully.
            $text = "Поздравляем! Ваше сообщение отправленно.";
            echo '<div class="contact-success-message"><i class="icon-checkmark"></i>Поздравляем! Ваше сообщение отправленно.</div>';
        } else {
            // Email have an Error.
            $text = "Внимание! Произошла ошибка.";
            echo '<div class="contact-error-message"><i class="icon-close"></i>Внимание! Произошла ошибка. - '.$mail->ErrorInfo;'</div>';
        }
    }
  }



}

} ?>

Answer 1

Возможно проблема в кодировке файлов. Файл формы(html) и обработчик(php) сохраните в кодировке UTF-8

Обычно это Файл->Сохранить как->выбираем кодировку UTF-8->сохраняем

READ ALSO
Как парсить библиотекой simplehtmldom?

Как парсить библиотекой simplehtmldom?

я убил на это месяцы, и искал в интернете, и сам пытался решать, и методом тыка перепробовал, но все никак

179
Вывод данных из БД MySQL в тег Select

Вывод данных из БД MySQL в тег Select

Выводится выпадающий список из базы данных, но не получается его структурировать, вывести столбиком все модели

203
POST-отправка не работает(Content-Security-Policy)

POST-отправка не работает(Content-Security-Policy)

Пытаюсь обработать и отправить данные через POST на emailПри клике на submit-кнопку идет переход на мой php-файл

199
Фильтрация GridView YiI2

Фильтрация GridView YiI2

Нужна подсказкаОсваиваю Yii2 и тут возникла проблема

206