За последние 24 часа нас посетил 16881 программист и 1641 робот. Сейчас ищут 905 программистов ...

проблема с кодировкой

Тема в разделе "Прочие вопросы по PHP", создана пользователем marmara, 17 авг 2014.

  1. marmara

    marmara Новичок

    С нами с:
    17 авг 2014
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте уважаемые форумчане!
    Помогите пожалуйста, если можно ) пытаюсь сделать форму отправки сообщения с сайта. После отправки хочу вывести сообщение "Спасибо за Ваше сообщение!", но получается такое "������� �� ���������!", а на почту приходит все что было отправлено русскими буквами такое "Рванов".
    Код файла пхп:
    Код (Text):
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    5. <title>Thank you</title>
    6. </head>
    7. <body>
    8. <?php
    9. if (isset($_POST['fio'])) {$fio = $_POST['fio'];}
    10. if (isset($_POST['maill'])) {$maill = $_POST['maill'];}
    11. if (isset($_POST['note'])) {$note = $_POST['note'];}
    12.  
    13. $to = "mail@yandex.ru";
    14. $headers = "Content-type: text/plain; charset = windows-1251";
    15. $subject = "Сообщение";
    16. $message = "ФИО: $fio \nЭлектронный адрес: $maill \nСообщение: $note";
    17. $send = mail ($to, $subject, $message, $headers);
    18. if ($send == 'true')
    19. {
    20. echo "<b>Спасибо за сообщение!<p>";
    21. echo "<a href=index.html>Вернуться на Главную</a>";
    22. }
    23. else
    24. {
    25. echo "<p><b>Ошибка. Сообщение не отправлено!";
    26. }
    27. ?>
    28. </body>
    29. </html>
    В чем может быть проблема?
    Заранее спасибо!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В какой кодировке файл?
     
  3. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    ������� �� ������ - текст в кодировке Windows-1251, а отображается в виде UTF-8
    Рванов - обратная ситуация, текст в UTF-8, а отображается в Windows-1251
     
  4. marmara

    marmara Новичок

    С нами с:
    17 авг 2014
    Сообщения:
    5
    Симпатии:
    0
    в ANSI
    вот а почему так? где подправить нужно?
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В самое начало файла, до любого вывода:
    Код (Text):
    1.  
    2. header("Content-Type: text/html;charset=cp1251");
    А вообще сейчас в utf8 принято сайты отдавать
     
  6. marmara

    marmara Новичок

    С нами с:
    17 авг 2014
    Сообщения:
    5
    Симпатии:
    0
    Проблема решена!)
    Заменила в файле Windows-1251 на UTF-8 в обоих местах и файл сохранила в UTF-8 без BOM
    Всем спасибо за подсказки! :)
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Теперь проверь заголовки.
     
  8. marmara

    marmara Новичок

    С нами с:
    17 авг 2014
    Сообщения:
    5
    Симпатии:
    0
    в смысле? какие заголовки?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    о, да, всё только начинается
    https://ru.wikipedia.org/wiki/%C7%E0%E3%EE%EB%EE%E2%EA%E8_HTTP

    Добавлено спустя 3 минуты 59 секунд:
    и кстати, кодировка при подключении к БД может быть:
    - кодировка подключения
    - кодировка передаваемых данных
    - кодировка принимаемых данных
    - кодировка базы данных
    - кодировка таблицы
    - кодировка столбца порой
    и еще
    - мнимая кодировка подключения, про которую вы думаете, что она кодировка подключения, а на самом деле забыли её установить (но всё работает хорошо, т.к. вы передаёте в правильной кодировке для БД, она сохраняет в правильной кодировке, а общение с подключением ведётся в неправильной, и пока вдруг не сработает автоконвертация - вы об этом не узнаете до появления проблем).
     
  10. marmara

    marmara Новичок

    С нами с:
    17 авг 2014
    Сообщения:
    5
    Симпатии:
    0
    не-не-не, это слишком для меня)))
    спасибо конечно, но это за рамками моего восприятия. Пока работает и хорошо!) Будем решать проблемы по мере их поступления :)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и тем не менее надо глянуть заголвки и увидить, в какой кодировке там сервер обещает отдать страницу.