За последние 24 часа нас посетили 15528 программистов и 1540 роботов. Сейчас ищут 838 программистов ...

Проблема с кодировкой в форме обратной связи

Тема в разделе "PHP для новичков", создана пользователем zhito, 28 авг 2008.

  1. zhito

    zhito Активный пользователь

    С нами с:
    4 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Здравствуйте!
    Вот такая простенькая форма обратной связи:

    PHP:
    1. <html>
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    4. </head>
    5. <body>
    6.  
    7. <?
    8. $mymail = "mail@gmail.com";
    9. if ($_POST['act']<> "y") {
    10.  
    11. ?>
    12.  
    13.  
    14.  
    15. <form action="form.php" method=POST>
    16. <input type="hidden" name="act" value="y" />
    17. <table width=90% align=center cellspacing=4>
    18. <tr>
    19. <td align=right class=main valign=middle>Ваше имя:</td>
    20. <td><input type=text size=25 name="name"></td>
    21. </tr>
    22. <tr>
    23. <td align=right class=main valign=middle>E-mail:</td>
    24. <td><input type=text size=25 name="mail"></td>
    25. </tr>
    26. <tr>
    27. <td align=right class=main valign=middle>Заголовок:</td>
    28. <td><input type=text size=25 name="subject"></td>
    29. </tr>
    30. <tr>
    31. <td align=right class=main valign=middle>Текст:</td>
    32. <td><textarea style="width:100%;height:200" name="message"></textarea></td>
    33. </tr>
    34. <tr>
    35. <td align=right colspan=2 align=center>
    36. <input type=submit name=go value="Отправить">
    37.  
    38. </tr>
    39. </table>
    40. </form>
    41.  
    42.  
    43.  
    44.  
    45. <?
    46. }
    47. else {
    48.  
    49. if($_POST['mail']=="")
    50. {
    51. $bad = "Укажите пожалуйста e-mail<br>";
    52. }
    53.  
    54. if ($_POST['message']=="") {
    55. $bad .= "Нет сообщения<br>";
    56. }
    57.  
    58. if ($bad)
    59. {
    60. echo $bad;
    61.  
    62. } else {
    63.  
    64.  
    65. $subj = "{$_POST['subject']}";
    66. $body = "Имя - {$_POST['mail']} \r\n E-mail - {$_POST['mail']} \r\n\r\n";
    67. $body .= "{$_POST['message']}";
    68. $headers  = 'MIME-Version: 1.0' . "\r\n";
    69. $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
    70. mail($mymail,$subj,$body,$header);
    71. echo "Ваше сообщение отправлено<br>";
    72. }
    73. }
    74. ?>
    75.  
    76.  
    77. </body></html>
    проблема в том что письма приходят не в UTF-8 а в другой кодировке
    как сделать чтобы письма приходили в UTF-8 вне зависимости от настроек сервера/хостинга?
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Не используй mail() :), через mail(), желаемого не добьёшься. Есть отилчный безплатный класс - PHP Mailer. Google тебе поможет. Там можно настроить всё, что необходимо.
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Может отправляются в другой кодировке? В какой кодировке страница с формой?