Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Nieprawidłowe kodowanie wiadomości e-mail otrzymywanej z formularza
sylwekb
post 3.10.2014, 08:24:46
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


Witam
Nie wiem czemu ale mimo, ze koduję wszystko UTF-8 są problemy z kodowaniem wiadomości e-mail otrzymywanej z formularza
Są krzaki tego typu zamiast polskich znaków ść
Co dziwne jako jedyne prawidłowe polskie czcionki ma w tym formularzu pole subject, które koduję jak poniżej
  1. $subject = "=?UTF-8?B?".base64_encode("śźżąćó")."?=";


Jak zaimplementować kod aby poprawnie kodowało wszystkie pola przesyłane przez $Body?


  1. <html>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html lang="pl">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <meta http-equiv="Content-Language" content="pl">
  7. <title>Konkurs</title>
  8. </head>
  9. <body bgcolor="#DFDFDF">
  10. <h3 align="center">Dziękujemy za przesłany formularz</h3>
  11. <?php
  12. $EmailTo = "MOJEMAIL" . ", ";
  13. $EmailTo .= Trim(stripslashes($_POST['visitormail']));
  14. $subject = "=?UTF-8?B?".base64_encode("śźżąćó")."?=";
  15. $imie = Trim(stripslashes($_POST['imie']));
  16. $nazwisko = Trim(stripslashes($_POST['nazwisko']));
  17. $nazwa_firmy = Trim(stripslashes($_POST['nazwa_firmy']));
  18. $telefon = Trim(stripslashes($_POST['telefon']));
  19. $visitormail = Trim(stripslashes($_POST['visitormail']));
  20. $miejscowosc = Trim(stripslashes($_POST['miejscowosc']));
  21. $firma = Trim(stripslashes($_POST['firma']));
  22. print "Numer seryjny urządzenia ". '<br>';
  23. $myInputs = $_POST["myInputs"];
  24. foreach ($myInputs as $eachInput) {
  25. echo $eachInput . '<br>';
  26. }
  27. $akceptacja_regulaminu = $_POST["akceptacja_regulaminu"];
  28. $zgoda_dane_osobowe = $_POST["zgoda_dane_osobowe"];
  29.  
  30. $Body = "";
  31. $Body .= "Imię: ";
  32. $Body .= $imie . ";";
  33. $Body .= "\n\n";
  34. $Body .= "Nazwisko: ";
  35. $Body .= $nazwisko . ";";
  36. $Body .= "\n\n";
  37. $Body .= "Nazwa firmy: ";
  38. $Body .= $nazwa_firmy . ";";
  39. $Body .= "\n\n";
  40. $Body .= "Telefon: ";
  41. $Body .= $telefon . ";";
  42. $Body .= "\n\n";
  43. $Body .= "email: ";
  44. $Body .= $visitormail . ";";
  45. $Body .= "\n\n";
  46. $Body .= "Miejsce zakupu:";
  47. $Body .= "\n\n";
  48. $Body .= "Miejscowość: ";
  49. $Body .= $miejscowosc . ";";
  50. $Body .= "\n\n";
  51. $Body .= "Firma: ";
  52. $Body .= $firma . ";";
  53. $Body .= "\n\n";
  54. $Body .= "Numer seryjny urządzenia: ";
  55. foreach ($myInputs as $eachInput) {
  56. $Body .= $eachInput . '; ';
  57. }
  58. $Body .= "\n\n";
  59. $Body .= "Akceptacja regulaminu: ";
  60. $Body .= $akceptacja_regulaminu;
  61. $Body .= "\n\n";
  62. $Body .= "Zgoda na przetwarzanie danych osobowych: ";
  63. $Body .= $zgoda_dane_osobowe;
  64. $Body .= "\n\n";
  65. $Body .= "\n";
  66.  
  67. $headers .= 'From: <MOJEMAIL>' . "\r\n";
  68. $headers .= 'Cc: MOJEMAIL' . "\r\n";
  69. $headers .= 'Bcc: MOJEMAIL' . "\r\n";
  70. $success = mail($EmailTo, $subject, $Body, $headers);
  71. if ($success) {
  72. print "<p>Wiadomość prawidłowo wysłana ...";
  73. }
  74. if ($copy == "yes") {
  75. $subject = $subject . " [KOPIA]";
  76. print "<p>Kopia wysłana na e-mail: " . $visitormail;
  77. $copysent = mail($EmailTo, $subject, $Body, $headers);
  78. if ($copysent) {
  79. }
  80. }
  81. ?>
  82. </body>
  83. </html>
  84.  
  85.  
Go to the top of the page
+Quote Post
Turson
post 3.10.2014, 08:32:42
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Dodaj
  1. $headers .= "Content-type: text/html; charset=utf-8";
Go to the top of the page
+Quote Post
sylwekb
post 3.10.2014, 08:45:50
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


Gdy wstawiam ten fragment to nie poprawia kodowania, a e-mail jest rozsypany. Czy to napewno wstawiam w tym miejscu?

Imię: ; Nazwisko:; Nazwa firmy:; Telefon:; email: ; Miejsce zakupu: Miejscowość: ; Firma:; Numer seryjny urządzenia: 9435/2014-01; 9435/2014-02; Akceptacja regulaminu: AKCEPTACJA Zgoda na przetwarzanie danych osobowych: AKCEPTACJA

  1. $headers .= "Content-type: text/html; charset=utf-8" . "\r\n";
  2. $headers .= 'From: <MOJEMAIL>' . "\r\n";
  3. $headers .= 'Cc: MOJEMAIL' . "\r\n";
  4. $headers .= 'Bcc: MOJEMAIL' . "\r\n";


Ten post edytował sylwekb 3.10.2014, 08:53:43
Go to the top of the page
+Quote Post
nospor
post 3.10.2014, 08:46:58
Post #4





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




Kazdy naglowek ma sie konczyc \r\n a wy o tym zapomnieliscie przy kodowaniu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sylwekb
post 3.10.2014, 08:57:23
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


Faktycznie, poprawiłem i już wszędzie są polskie znaki.

Tylko czemu teraz w e-mailu wszystko jest tak rozsypane, a nie każdy element w osobnym wierszu tak jak poformatowałem w Body?

Imię:; Nazwisko:; Nazwa firmy:; Telefon: ; email:; Miejsce zakupu: Miejscowość: ; Firma: ; Numer seryjny urządzenia: 9435/2014-01; 9435/2014-02; Akceptacja regulaminu: AKCEPTACJA Zgoda na przetwarzanie danych osobowych: AKCEPTACJA
Go to the top of the page
+Quote Post
irekk
post 3.10.2014, 09:01:05
Post #6





Grupa: Zarejestrowani
Postów: 64
Pomógł: 10
Dołączył: 2.08.2012
Skąd: DW

Ostrzeżenie: (0%)
-----


Po pierwsze używasz \n\n a nie \r\n a po drugie jak wysyłasz tekstowy email to nie używaj content-type: text/html lecz text/plain
Go to the top of the page
+Quote Post
sylwekb
post 3.10.2014, 09:20:40
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


Oczywiście, poprawiłem już kodowanie i formatowanie działa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 12:49