Кодировка в форме отправки сообщений

Статус
В этой теме нельзя размещать новые ответы.

spectailLL

Спасибо nulled !
Регистрация
21 Ноя 2008
Сообщения
294
Реакции
199
Друзья, помогите в коде отправки сообщений с сайта(ниже код .php - файла) прописать кодировку. С этой формы приходят письма, но тот же the bat отказывается автоматом определять кодировку UTF-8, т.к. в служебной части письма нет информации о кодировке вообще (отсутствует строка "Content-type: text/html; charset=\"utf-8\"")
Помогите прописать кодировку в письме.

Заранее спасибо.

Вот код:

PHP:
<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
    $error.="Invalid email address entered";
    $errors=1;
}
if($errors==1) echo $error;
else{
    $values = array ('name','email','message');
    $required = array('name','email','message');
     
    $your_email = "gmail@gmail.com";
    $email_subject = "New Message: ".$_POST['subject'];
    $email_content = "new message:\n";

    
    foreach($values as $key => $value){
      if(in_array($value,$required)){
        if ($key != 'subject' && $key != 'company') {
          if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
        }
        $email_content .= $value.': '.$_POST[$value]."\n";
      }
    }
     
    if(@mail($your_email,$email_subject,$email_content)) {
        echo 'Message sent!'; 
    } else {
        echo 'ERROR!';
    }
}
?>
 
кодировка письма указывается в заголовках (4 параметр в ф-и mail)

заменить
Код:
if(@mail($your_email,$email_subject,$email_content)) {

на
PHP:
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: admin <admin@site.com>\r\n";
if(@mail($your_email,$email_subject,$email_content,$headers)) {
 
Код:
<?php 

if(!$_POST) exit; 

$email = $_POST['email']; 


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS'; 
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){ 
    $error.="Invalid email address entered"; 
    $errors=1; 
} 
if($errors==1) echo $error; 
else{ 
    $values = array ('name','email','message'); 
    $required = array('name','email','message'); 
      
    $your_email = "gmail@gmail.com"; 
    $email_subject = "New Message: ".$_POST['subject']; 
    $email_content = "new message:\n"; 

     
    foreach($values as $key => $value){ 
      if(in_array($value,$required)){ 
        if ($key != 'subject' && $key != 'company') { 
          if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; } 
        } 
        $email_content .= $value.': '.$_POST[$value]."\n"; 
      } 
    } 
      
    $headers= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=UTF-8\r\n";
    $headers .= "From: admin <admin@site.com>\r\n";

    if(@mail($your_email,$email_subject,$email_content,$headers)) { 
        echo 'Message sent!';  
    } else { 
        echo 'ERROR!'; 
    } 
} 
?>

Все вроде элементарно. Как-то так.
 
Всех благодарю!​

Уважаемых админов прошу закрыть тему.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху