Форма за контакт - Проблем с енкодинга

extremebg

Registered
Здравейте имам следния проблем:
Направих си фирма за контакт на сайта която да изпраща въведената информация на e-mail адреса ми . Ето адреса на въпросната форма
http://nik-komplekt.com/index-10.html
Проблема е че като напиша нещо на кирилица в полето "Вашия въпрос" на пощата ми се получава "маймунщина".

Имам и друга форма за контакт без CSS която ползва същия PHP файл за изпращане на e-mail като горната форма.
http://nik-komplekt.com/form.html
При тази форма няма проблем с енкодинга на полето "Вашия въпрос".

Не мога да разбера защо се получава така,че първата форма има проблем с енкодинга а втората не при положение че се ползва един и същ PHP файл за изпращане.

Моля помогнете.
 
Пробвай да смениш този ред
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
да стане така:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
ако не пробвай и така:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
 
Ще е нужен PHP кода за да се добави хеадър с правилния енкодинг :
PHP:
$headers  = 'MIME-Version: 1.0'."\r\n";
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";
$headers .= "From: ".$email." \r\n";
mail($email_to,'=?UTF-8?B?'.base64_encode($title).'?=',$info,$headers);

или charset-1251
PHP:
$to      = $email; // имейл чрез GET
$subject = 'Успешна регистрация';
$headers = 'From: no-reply@mail.com' . "\r\n" .
    'Reply-To: no-reply@mail.com' . "\r\n" .
   'MIME-Version: 1.0' . "\r\n" .
   'Content-type: text/html; charset=windows-1251' . "\r\n" .
mail($to, $subject, $message, $headers);


http://web-tourist.net/forum/viewtopic.php?t=80693
 
Това е кода на PHP файла

Код:
<?php
if(isset($_POST['email'])) {
     
    // CHANGE THE TWO LINES BELOW
    $email_to = "an_nikolow@abv.bg";
     
    $email_subject = "website html form submissions";
     
     
    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }
     
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');      
    }
     
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
   
    $comments = $_POST['comments']; // required
     
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";
     
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
     
    $email_message .= "Вашето име: ".clean_string($first_name)."\n";
    $email_message .= "Вашата фамилия: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    
    $email_message .= "Вашият въпрос: ".clean_string($comments)."\n";
     
     
// create email headers
$headers .= 'MIME-Version: 1.0' ."\r\n";
$headers .= 'Content-Type: text/HTML; charset=windows-1251' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n";
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
 

 
Thank you for contacting us. We will be in touch with you very soon.
 
<?php
}
die();
?>

Пак изпраща маймунщина.

Form details below.

Вашето име: Andrej
Вашата фамилия: Nikolow
Email: topo@gyuvetch.bg
Вашият въпрос: Пробвай РґР° смениС? този ред
 
Код:
<?php
if(isset($_POST['email'])) {
     
    // CHANGE THE TWO LINES BELOW
    $email_to = "an_nikolow@abv.bg";
     
    $email_subject = "website html form submissions";
     
     
    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }
     
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');      
    }
     
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
   
    $comments = $_POST['comments']; // required
     
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";
     
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
     
    $email_message .= "Вашето име: ".clean_string($first_name)."\n";
    $email_message .= "Вашата фамилия: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    
    $email_message .= "Вашият въпрос: ".clean_string($comments)."\n";
     
     
// create email headers
$headers .= 'MIME-Version: 1.0' ."\r\n";
$headers .= 'Content-Type: text/HTML; charset= UTF-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n";
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
 

 
Thank you for contacting us. We will be in touch with you very soon.
 
<?php
}
die();
?>

Пробвай така :)
 
Оправих го просто е трябвало да запиша файла с кодировка ANSI . Като редактор използвах NotePad++.
 
Здравейте, появи се нов проблем със формата . Проблема е следния:

Като сложа на променливата $email_to стойност e-mail адрес от домейна на сайта user@nik-komplekt.com не иска да изпраща съобщения . Като e-mail клиент ползвам услугите на Гугъл, проблем с останалата входяща поща нямам . Ако сложа стойност която е от типа username@gmail.com няма проблем . Проблема е само със e-mail адресите от домейна.

Чудя се къде е проблема дали в скрипта или при хостинг доставчика ми .
 

Горе