Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Форма отправки сообщения


Автор: abcshell 18.1.2010, 19:32
Здравствуйте, помогите исправить баг ). Я не слишком силен в php, но хочется чтобы все работало нормально. Проблема в отправке писем с сайта на почту в кодировке utf-8... Все кроме "От кого" работает и доходит, а вот  от кого - кракозяблы, а точнее не видно почтового ящика отправителя(. Помогите исправить.

Код


<?php
include('kcaptcha/kcaptcha.php');
session_start();
require_once("config.php");


if ($_POST['act']== "y")
{
    if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring'])
    {
        
        if (isset($_POST['posName']) && $_POST['posName'] == "")
        {
         $statusError = $errors_name;
        }
        elseif (isset($_POST['posEmail']) && $_POST['posEmail'] == "")
        {
         $statusError = $errors_mailfrom;
        }
        elseif(isset($_POST['posEmail']) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$/", $_POST['posEmail']))
        {
         $statusError = $errors_incorrect;

         unset($_POST['posEmail']);
        }
        elseif (isset($_POST['posRegard']) && $_POST['posRegard'] == "")
        {
         $statusError = $errors_subject;
        }
        elseif (isset($_POST['posText']) && $_POST['posText'] == "")
        {
         $statusError = $errors_message;
        }

elseif (!empty($_POST))
{   
 $headers  = "MIME-Version: 1.0\r\n";
 $headers  = "Content-type: text/html; charset=utf-8 \r\n"; 
 $headers .= "Date: ".date('r', time())."\r\n";
 $headers .= "From: \"".$_POST['posName']."\" <".$_POST['posEmail'].">\r\n";
 $headers .= "X-Mailer: My Send E-mail\r\n";

 mail($mailto,$subject,$message,$headers);

 unset($name, $posText, $mailto, $subject, $posRegard, $message);

 $statusSuccess = $send;
}

       }else{
             $statusError = "$captcha_error";
             unset($_SESSION['captcha_keystring']);
        }
}
?>


Автор: Котокобра 18.1.2010, 23:25
для изменения кодировки попробуй 

Код

$from_name = iconv("windows-1251", "utf-8", $_POST['posName']);
$from_email = iconv("windows-1251", "utf-8", $_POST['posEmail']);

$headers .= "From: \"".$from_name."\" <".$from_email.">\r\n";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)