Good afternoon, can you help explain why after sending a message, the message comes in broken Cyrillic? Are the headers written correctly in the mail () function? And how to treat it?

<?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>"; } ?> 

Thank.

1 answer 1

1. Probably your files are saved in a different encoding. For example source.php - CP-1251, and the host in UTF-8.

You have opened your files in a text editor. Re-save them in UTF-8 encoding. In Sublime: File-Save to Encoding.

  1. In the tag specify the same encoding for all. In the header of your template list

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

  1. This is not in place of mail ()

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

  • 1Can more in detail, which files are in different encoding? I have a separate file: callback.php, it is referenced by form action = "callback.php" 2- Which tag? 3- This is instead of mail ()? - Kamil NHOT
  • I corrected the answer. -