Форма обратной связи и ivonv

Тема в разделе "PHP", создана пользователем Серж, 27 апр 2013.

  1. Серж

    Серж

    Регистрация:
    5 янв 2013
    Сообщения:
    47
    Симпатии:
    2
    господа, стыд и позор мне, создаю сайтик и не могу справиться с кодировкой при отправки письма себе на почту, а именно: содержимое письма идёт кракозяброй (тема пишется отлично как в кирилице так и нет), скорее всего не там юзаю iconv
    так как в строчке
    PHP:
    mail ($to,$subject,$message)
    меняю
    PHP:
    mail ($to,$subject,iconv("WINDOWS-1251","UTF-8","$message")
    и получаю
    Ошибку Сервера Ошибка HTTP 500
    а когда без iconv - то кракозябра

    помогите разобратсья:
    Код:
    PHP:
    <section id="content"><div class="ic"></div><div class="pad-1">
    <?php
    $xxx 
    =$_POST["xxx"];
     
    $name=$_POST["name"];
    $email=$_POST["email"];
    $mess=$_POST["mess"];
    if (isset (
    $name))
    {
    $name substr($name,0,20); //Не может быть более 20 символов
    if (empty($name))
    {
    echo 
    "<center><b>Не указано имя.<p>";
    echo 
    "<a href=contacts.php>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else
    {
    $name "не указано";
    }
    if (isset (
    $email))
    {
    $email substr($email,0,20); //Не может быть более 20 символов
    if (empty($email))
    {
    echo 
    "<center><b>Не указан e-mail.<p>";
    echo 
    "<a href=contacts.php>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else
    {
    $email "не указано";
    }
    if (isset (
    $mess))
    {
    $mess substr($mess,0,1000); //Не может быть более 1000 символов
    if (empty($mess))
    {
    echo 
    "<center><b>Нет текста вопроса.<p>";
    echo 
    "<a href=contacts.php>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else
    {
    $mess "не указано";
    }
    $i "не указано";
    if (
    $name == $i AND $email == $i AND $mess == $i)
    {
    echo 
    "Ошибка ! Скрипту не были переданы параметры !";
    exit;
    }
    $to "[email protected]";
    $subject "Вопрос с фотосайта от клиента";
    $message "Имя: $name
    Электронная почта: 
    $email
    Сообщение:
    $mess
    IP-адрес:
    $REMOTE_ADDR";
    mail ($to,$subject,iconv("WINDOWS-1251""UTF-8""$message") or print "Не могу отправить письмо.";
    echo 
    "<center><b>Спасибо за отправку вашего сообщения<br><a href=index.html>Нажмите</a>, чтобы вернуться на Главную страницу сайта";
    exit;
    ?>
    </section>
     
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    А у тебя случайно основной документ в какой кодировке то?
    К примеру у меня без прописи iconv в нормальной кодировке приходят письма.
    Код:
    mail ("[email protected]",
    	  "Сообщение с сайта (отправитель: $name)",
    	  "$message \n\n Контакты: \n $email \n\n Телефон: \n $phone");
    header ("Location: /index.html");
     
  3. Серж

    Серж

    Регистрация:
    5 янв 2013
    Сообщения:
    47
    Симпатии:
    2
    исходный в UTF-8, я просто как в Jrpg упёрся в стену и не могу с места сдвинуться(
    --- добавлено: Apr 27, 2013 8:32 PM ---
    Перепроверил, всё в UTF-8
    а с вышеизложенным кодом ещё и кодировка темы приходящего письма слетела, ну или я совсем криворуким стал((