Php скрипт отправки сообщения mail()

277
18 апреля 2017, 10:22

Добрый день, можете помочь объяснить, почему после отправки сообщения, сообщение приходит со сломанной кириллицей? Правильно ли написаны заголовки в функции mail()? И как лечить это?

<?php
    if(isset($_POST['name']) && isset($_POST['phone']))
     //if (isset($_REQUEST['email']))
     //if "email" is filled out, send email
     {
     //send email
     $email = "myacc@yandex.ru" ;
     $subject = "Новый заказ с сайта" ;
     $server = $_SERVER['HTTP_HOST'];
     $message = '
                Имя: '.$_POST['name'].'
                Телефон: '.$_POST['phone'].'
                Отчество: '.$_POST['sername'].'
                E-mail: '.$_POST['email'];
      if(isset($_POST['message']))
        $message .= '
                    Сообщение: 
                    '.$_POST['message'];
                    #$headers = "From: stroirus@" . $_SERVER['HTTP_HOST'];
     mail( "$email", "$subject",
     $message, 'MIME-Version: 1.0'.'content-type: text/html; charset=utf-8'."\r\n".'From: romardi@'.$_SERVER['HTTP_HOST']);
     header("Location: ".$_SERVER['HTTP_HOST']);
     //echo "Message has been sent to $email";
     }
     else
     //if "email" is not filled out, display the form
     {
     $server = $_SERVER[HTTP_HOST];
     echo "<h1>Mail test from $server</h1>
     <form method='post' action='" . $_SERVER['PHP_SELF'] . "'>
     Enter Your Email: <input name='email' type='text' /><br /><br />
     <input type='submit' name='Submit' value='Submit' />
     </form>";
     }
    ?>

Спасибо.

Answer 1

1.Вероятно у вас файлы сохранены в разной кодировке. К примеру источник.php - CP-1251, а принимающий в UTF-8.

Вы открыли ваши файлы в текстовом редакторе. Пересохраните их в кодировке UTF-8. В Sublime: Файл-Сохранить в кодировке.

  1. В тэге указать одинаковую кодировку для всех. В хэдере вашего шаблона пропишите

<head> 
............................ 
  <meta charset="UTF-8"> 
............................ 
</head>

  1. Это не вместо mail()

    if(isset($_POST['message'])) $form_message = iconv("CP-1251", "UTF-8", $_POST['message'] ); $message .= ' Сообщение: '.$form_message; ..................................

READ ALSO
вставка массива в массив [требует правки]

вставка массива в массив [требует правки]

Нужно вставить в вектор векторов еще один вектор векторов после k-той строки, но компилятор выдаёт ошибкуВот код: https://hastebin

270
QTimer не срабатывает

QTimer не срабатывает

Доброго времени суток! Написал небольшой класс и в нем QTimer, но при вызове start() приложение входит в вечный циклС моей точки зрения, все норм,...

223
C++ показать вторую букву из слова

C++ показать вторую букву из слова

ПриветНужна помощь с выводом определенных букв из слова

277
Visual C++ Куча была повреждена (параметры: 0x774BCDD8)

Visual C++ Куча была повреждена (параметры: 0x774BCDD8)

Здравствуйте! Пишу свой класс Array, который представляет из себя массивПри вызове метода append() программа выдаёт исключение

427