Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кодировка письма в форме обратной связи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как сменить кодировку отправленого с сайта письма
hanns-g
Отправлено: 05 Сентября, 2010 - 22:32:48
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Добрый день.

Сайт в кодировке utf-8, форма обратной связи отправляет письмо тоже в кодировке utf-8.
но по приходу на ящик кодировка не определяется

вот функция отправки письма:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function s5_qc_submit() {
  3. if (document.getElementById("spambox").value.length > 0) {
  4. return false;
  5. }
  6.  
  7. var s5_message_holder = document.getElementById("messagebox").value;
  8. var s5_first_message_char = s5_message_holder.charAt(0);
  9. var s5_second_message_char = s5_message_holder.charAt(1);
  10. var s5_third_message_char = s5_message_holder.charAt(2);
  11. var s5_fourth_message_char = s5_message_holder.charAt(3);
  12.  
  13. if (s5_first_message_char == "<") {
  14. return false;
  15. }
  16.  
  17. if (s5_first_message_char == "w" && s5_second_message_char == "w" && s5_third_message_char == "w") {
  18. return false;
  19. }
  20.  
  21. if (s5_first_message_char == "h" && s5_second_message_char == "t" && s5_third_message_char == "t") {
  22. return false;
  23. }
  24.  
  25. if (document.getElementById("subjectbox").value == "<?php echo $subjecttext_s5_qc ?>" || document.getElementById("namebox").value == "<?php echo $nametext_s5_qc ?>" || document.getElementById("emailbox").value == "<?php echo $emailtext_s5_qc ?>" || document.getElementById("messagebox").value == "<?php echo $bodytext_s5_qc ?>") {
  26. alert('<?php echo $notcomplete_s5_qc ?>');
  27. }
  28. else {
  29. var email_str = document.getElementById("emailbox").value;
  30. s5_qc_isValidEmail(email_str);
  31. }
  32. }
  33.  


Помогите плиззз прописать кодировку в письме Огорчение
 
 Top
Uchkuma
Отправлено: 05 Сентября, 2010 - 22:36:58
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Добавьте к отправляемым заголовкам:
PHP:
скопировать код в буфер обмена
  1. $head .= "Content-Type: text/plain; charset=$charset\r\n";
где $charset ваша кодировка.
 
 Top
hanns-g
Отправлено: 05 Сентября, 2010 - 22:47:52
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




это куда вставить, в какой строчке? ато я в java не шарю

вот весь скрипт:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /**
  3. @version 1.0: mod_s5_quick contact
  4. Author: Shape 5 - Professional Template Community
  5. Available for download at www.shape5.com
  6. */
  7.  
  8. // no direct access
  9. defined('_JEXEC') or die('Restricted access');
  10.  
  11. $pretext_s5_qc          = $params->get( 'pretext' );
  12. $email_address = $params->get( 'adminemail' );
  13. $subject_prefix = $params->get( 'subjectprefix' );
  14. $nametext_s5_qc = $params->get( 'nametext' );
  15. $emailtext_s5_qc = $params->get( 'emailtext' );
  16. $subjecttext_s5_qc = $params->get( 'subjecttext' );
  17. $subjectspacer = " ";
  18. $bodytext_s5_qc = $params->get( 'bodytext' );
  19. $sendtext_s5_qc = $params->get( 'sendtext' );
  20. $width_s5_qc = $params->get( 'width' );
  21. $height_s5_qc = $params->get( 'height' );
  22. $thankyou_s5_qc = $params->get( 'thankyou' );
  23. $emailerror_s5_qc = $params->get( 'emailerror' );
  24. $notcomplete_s5_qc = $params->get( 'notcomplete' );
  25. if (isset($_POST['name'])) {
  26.     $name = $_POST['name'];
  27. }
  28. if (isset($_POST['email'])) {
  29.     $email = $_POST['email'];
  30. }
  31. if (isset($_POST['message'])) {
  32.     $message = $_POST['message'];
  33. }
  34. if (isset($_POST['subject'])) {
  35.     $subject = $subject_prefix . $subjectspacer . $_POST['subject'];
  36. }
  37.  
  38. // Detects mail headers to prevent spammers.
  39. if (isset($_POST['name'])) {
  40. if ($name != "" && $name != " ") {
  41.    $from = urldecode($email);
  42.    if (eregi("\r",$from) || eregi("\n",$from)){
  43.            print "Malformed Headers were detected.";
  44.         exit;
  45.    }
  46.     mail($email_address, $subject, $message, "From: $name <$email>");
  47. }
  48. }
  49.  
  50. ?>
  51.  
  52. <?PHP if ($pretext_s5_qc != "") { ?>
  53. <?PHP echo $pretext_s5_qc ?>
  54. <br /><?PHP } ?>
  55.  
  56. <form name="s5_quick_contact" method="post" action="">
  57. <div class="collfild">
  58. <input class="inputbox" id="namebox" onclick="s5_qc_clearname()" onfocus="s5_qc_clearname()" style="width:<?PHP echo $width_s5_qc ?>" type="text" value="<?PHP echo $nametext_s5_qc ?>" name="name"></input>
  59.  
  60. <input class="inputbox" id="emailbox" onclick="s5_qc_clearemail()" onfocus="s5_qc_clearemail()" style="width:<?PHP echo $width_s5_qc ?>" type="hidden" value="<?PHP //echo $emailtext_s5_qc ?>admin@antikrazka.com.ua" name="email"></input>
  61. </div><div class="collfild">
  62. <input class="inputbox" id="subjectbox" onclick="s5_qc_clearsubject()" onfocus="s5_qc_clearsubject()" style="width:<?PHP echo $width_s5_qc ?>" type="text" value="<?PHP echo $subjecttext_s5_qc ?>" name="subject"></input>
  63.  
  64. <input id="spambox" type="hidden" value="" name="spam"></input>
  65. </div><div class="collfild">
  66. <input id="messagebox" class="inputbox" onclick="s5_qc_clearbody()" onfocus="s5_qc_clearbody()" style="width:<?PHP echo $width_s5_qc ?>;" name="message" type="text"value="<?PHP echo $bodytext_s5_qc ?>" ></input>
  67. </div>
  68. <input class="button" type="button" onclick="s5_qc_submit()" value="<?PHP echo $sendtext_s5_qc ?>" ></input>
  69. </form>
  70.  
  71. <script language="javascript" type="text/javascript">
  72. // <![CDATA[
  73.  
  74. function s5_qc_clearbody() {
  75. if (document.getElementById("messagebox").value == "<?PHP echo $bodytext_s5_qc ?>") {
  76. document.getElementById("messagebox").value="";
  77. }
  78. if (document.getElementById("namebox").value.length < 1) {
  79. document.getElementById("namebox").value = "<?PHP echo $nametext_s5_qc ?>";
  80. }
  81. if (document.getElementById("emailbox").value.length < 1) {
  82. document.getElementById("emailbox").value = "<?PHP echo $emailtext_s5_qc ?>";
  83. }
  84. if (document.getElementById("subjectbox").value.length < 1) {
  85. document.getElementById("subjectbox").value = "<?PHP echo $subjecttext_s5_qc ?>";
  86. }
  87. }
  88.  
  89. function s5_qc_clearname() {
  90. if (document.getElementById("namebox").value == "<?PHP echo $nametext_s5_qc ?>") {
  91. document.getElementById("namebox").value="";
  92. }
  93. if (document.getElementById("messagebox").value.length < 1) {
  94. document.getElementById("messagebox").value = "<?PHP echo $bodytext_s5_qc ?>";
  95. }
  96. if (document.getElementById("emailbox").value.length < 1) {
  97. document.getElementById("emailbox").value = "<?PHP echo $emailtext_s5_qc ?>";
  98. }
  99. if (document.getElementById("subjectbox").value.length < 1) {
  100. document.getElementById("subjectbox").value = "<?PHP echo $subjecttext_s5_qc ?>";
  101. }
  102. }
  103.  
  104. function s5_qc_clearemail() {
  105. if (document.getElementById("emailbox").value == "<?PHP echo $emailtext_s5_qc ?>") {
  106. document.getElementById("emailbox").value="";
  107. }
  108. if (document.getElementById("namebox").value.length < 1) {
  109. document.getElementById("namebox").value = "<?PHP echo $nametext_s5_qc ?>";
  110. }
  111. if (document.getElementById("messagebox").value.length < 1) {
  112. document.getElementById("messagebox").value = "<?PHP echo $bodytext_s5_qc ?>";
  113. }
  114. if (document.getElementById("subjectbox").value.length < 1) {
  115. document.getElementById("subjectbox").value = "<?PHP echo $subjecttext_s5_qc ?>";
  116. }
  117. }
  118.  
  119. function s5_qc_clearsubject() {
  120. if (document.getElementById("subjectbox").value == "<?PHP echo $subjecttext_s5_qc ?>") {
  121. document.getElementById("subjectbox").value="";
  122. }
  123. if (document.getElementById("namebox").value.length < 1) {
  124. document.getElementById("namebox").value = "<?PHP echo $nametext_s5_qc ?>";
  125. }
  126. if (document.getElementById("emailbox").value.length < 1) {
  127. document.getElementById("emailbox").value = "<?PHP echo $emailtext_s5_qc ?>";
  128. }
  129. if (document.getElementById("messagebox").value.length < 1) {
  130. document.getElementById("messagebox").value = "<?PHP echo $bodytext_s5_qc ?>";
  131. }
  132. }
  133.  
  134. function s5_qc_isValidEmail(str_email) {
  135.    if (str_email.indexOf(".") > 2 && str_email.indexOf("@") > 0) {
  136.    alert('<?PHP echo $thankyou_s5_qc ?>');
  137.    document.s5_quick_contact.submit();
  138.    }
  139.    else {
  140.    alert('<?PHP echo $emailerror_s5_qc ?>');
  141.    }
  142. }
  143.  
  144. function s5_qc_submit() {
  145. if (document.getElementById("spambox").value.length > 0) {
  146. return false;
  147. }
  148.  
  149. var s5_message_holder = document.getElementById("messagebox").value;
  150. var s5_first_message_char = s5_message_holder.charAt(0);
  151. var s5_second_message_char = s5_message_holder.charAt(1);
  152. var s5_third_message_char = s5_message_holder.charAt(2);
  153. var s5_fourth_message_char = s5_message_holder.charAt(3);
  154.  
  155. if (s5_first_message_char == "<") {
  156. return false;
  157. }
  158.  
  159. if (s5_first_message_char == "w" && s5_second_message_char == "w" && s5_third_message_char == "w") {
  160. return false;
  161. }
  162.  
  163. if (s5_first_message_char == "h" && s5_second_message_char == "t" && s5_third_message_char == "t") {
  164. return false;
  165. }
  166.  
  167. if (document.getElementById("subjectbox").value == "<?PHP echo $subjecttext_s5_qc ?>" || document.getElementById("namebox").value == "<?PHP echo $nametext_s5_qc ?>" || document.getElementById("emailbox").value == "<?PHP echo $emailtext_s5_qc ?>" || document.getElementById("messagebox").value == "<?PHP echo $bodytext_s5_qc ?>") {
  168. alert('<?PHP echo $notcomplete_s5_qc ?>');
  169. }
  170. else {
  171. var email_str = document.getElementById("emailbox").value;
  172. s5_qc_isValidEmail(email_str);
  173. }
  174. }
  175.  
  176. // ]]>
  177. </script>
  178.  

(Отредактировано автором: 05 Сентября, 2010 - 22:52:08)

 
 Top
Uchkuma
Отправлено: 05 Сентября, 2010 - 22:55:46
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Замените 46 строчку на следующее:
PHP:
скопировать код в буфер обмена
  1. $head = "Content-Type: text/plain; charset=utf-8\r\n"
  2. ."From: $name <$email>\r\n";
  3. mail($email_address, $subject, $message, $head);

(Добавление)
hanns-g пишет:
это куда вставить, в какой строчке? ато я в java не шарю
Это уже php, а не javascript.
 
 Top
hanns-g
Отправлено: 05 Сентября, 2010 - 23:44:41
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




спасибо большое, теперь тело письма и тема выводится в правильной кодировке, а имя отправителя как и было - кракозябрами

может его можно как то перекодировать?

(Отредактировано автором: 05 Сентября, 2010 - 23:46:28)

 
 Top
Uchkuma
Отправлено: 05 Сентября, 2010 - 23:53:40
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Ухожу спать. Попробуйте сами разобраться. Перекодируйте соответствующее поле функцией iconv.
 
 Top
hanns-g
Отправлено: 06 Сентября, 2010 - 00:11:20
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Uchkuma пишет:
Ухожу спать. Попробуйте сами разобраться. Перекодируйте соответствующее поле функцией iconv.


Огромное спасибо!!!
все работает!!!
 
 Top
JustUserR
Отправлено: 06 Сентября, 2010 - 17:51:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




hanns-g пишет:
Теперь тело письма и тема выводится в правильной кодировке, а имя отправителя как и было - кракозябрами
Для представления информации которая передается в HTTP-подобных заголовках текстовых протоколов передачи данных как правило используются только 7bit-ные формы - и для универсализации кодовой таблицы в которой реально хранятся кодированная информация используется специальный RFC-способ кодирования


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB