подскажите pls;) форма обратной связи - приходит абракадабра!

Andrey Romanov

Постоялец
Регистрация
16 Июн 2013
Сообщения
66
Реакции
5
Форма на HTML странице.
Имя
Email
Сообщение

приходит,
по английский всё отлично, а по русски:
" тест

-Василий Сквазняков "
как то так)

Вот файл php формы:

<?php
if($_POST)
{
$to_email = "mail@mail.ru"; //Recipient email, Replace with own email here

//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

$output = json_encode(array( //create JSON data
'type'=>'error',
'text' => 'Sorry Request must be Ajax POST'
));
die($output); //exit script outputting json data
}

//Sanitize input data using PHP filter_var().
$name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING);

//email body
$message_body = $message."\r\n\r\n-".$name."\r\nEmail : ".$email;

//proceed with PHP email.
$headers = 'From: '.$name.'' . "\r\n" .
'Reply-To: '.$email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$send_mail = @mail($to_email, $name, $message_body, $headers);

if(!$send_mail)
{
//If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
$output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => 'Приветстуем Вас '.$name .'! Спасибо за ваше сообщение!'));
die($output);
}
}
?>

Что тут добавить убрать ? Или где добавить и что то изменить?
 
Походу проблема с кодировкой. Попробуй перекодировать файл в utf-8 без BOM.
 
  • Заблокирован
  • #6
проверь кодировки файлов, если используется ajax также его кодировку.
 
для nginx решением будет
Код:
charset UTF-8;
в директиву server, мб кому пригодится
 
Назад
Сверху