Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Polskie znaki w formularzu
pietrov8
post
Post #1





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


Witam.

Mam taki formularz w html
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. </head>
  3.  
  4.  
  5. <form action="form.php" method="post" name="wypowiedzi">
  6. <table align="center" width="458" border="0">
  7. <tr>
  8. <td width="187"><strong>Nazwa GP: (państwo)</strong></td>
  9. <td width="261"><input type="text" name="country"></td>
  10. </tr>
  11. <tr>
  12. <td width="187"><strong>Nick:</strong></td>
  13. <td width="261"><input type="text" name="nick"></td>
  14. </tr>
  15. <tr>
  16. <td><strong>Zespół:</strong></td>
  17. <td><input name="team" type="text" size="30"></td>
  18. </tr>
  19. <tr>
  20. <td><strong>Pozycja w kwalifikacjach:</strong></td>
  21. <td><input name="pos_q" type="text" size="5" maxlength="2"></td>
  22. </tr>
  23. <tr>
  24. <td><strong>Pozycja w wyścigu:</strong></td>
  25. <td><input name="pos_r" type="text" size="5" maxlength="2"></td>
  26. </tr>
  27. <tr>
  28. <td><strong>Wypowiedź:</strong></td>
  29. <td><textarea name="wypowiedz" rows="10" cols="50" ></textarea></td>
  30. </tr>
  31. <tr>
  32. <td colspan="2"><input type="submit" value="WYŚLIJ"</td>
  33. </tr>
  34. </table>
  35.  
  36.  
  37. </form>
  38. </body>
  39. </html>


oraz plik przetwarzający dane z formularza i wysyłający funkcją mail() na pocztę
  1. <?php
  2. if (!nick || !team || !wypowiedz)
  3. {
  4. echo "<b>Nie uzupełniłeś wszystkich rubryk!!!!</b>";
  5. }
  6. $wiadomosc = "Content-type: text/plain; charset=iso-8859-2\n";
  7. $wiadomosc =
  8. "Nazwa GP: ".$_POST['country']."
  9.  
  10. Nick: ".$_POST['nick']."
  11.  
  12. Zespół: ".$_POST['team']."
  13.  
  14. Pozycja w kwalifiakcjach: ".$_POST['pos_q']."
  15.  
  16. Pozycja w wyścigu: ".$_POST['pos_r']."
  17.  
  18. Wypowiedź zawodnika: ".$_POST['wypowiedz']." ";
  19.  
  20. $tematyka = $_POST['country']." ".$_POST['nick']." Wypowiedź po wyścigu";
  21.  
  22.  
  23. mail ("wypowiedzi@pit-lane.info", $tematyka, $wiadomosc );
  24. echo "<b>Wiadomoć została wysłana</b><br/><br/>";
  25. echo "Potwierdzenie treści: <br/>";
  26. echo "Nazwa GP: <strong>".$_POST['country']."</strong><br/>";
  27. echo "Twój Nick: <strong>".$_POST['nick']."</strong><br/>";
  28. echo "Twój zespół: <strong>".$_POST['team']."</strong><br/>";
  29. echo "Pozycja w kwalifiakcjach: <strong>".$_POST['pos_q']."</strong><br/>";
  30. echo "Pozycja w wyścigu: <strong>".$_POST['pos_r']."</strong><br/><br/>";
  31. echo "Wypowiedź: <strong>".$_POST['wypowiedz']."</strong><br>";
  32. echo "Pozdrawia <b>Administracja</b>";
  33. ?>


Problem polega na tym iż wiadomości przychodzące na pocztę nie zawierają polskich znaków tylko są zastępowane przez znaki zapytania. Kodowanie formularza jest ok iż tam znaki polskie się dobrze wyświetlają zaś w wiadomości pocztowej już tak wesoło niejest. Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
wiewiorek
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


Użyć iconv("UTF-8", "ISO-8859-2", $tekst) do zmiany kodowania wysyłanego tekstu albo najlepiej uzyć biblioteki phpmailer.

Ten post edytował wiewiorek 19.10.2009, 19:02:24
Go to the top of the page
+Quote Post
pietrov8
post
Post #3





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


Czyli do każdej zmiennej mam to użyć??
Go to the top of the page
+Quote Post
wiewiorek
post
Post #4





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


Do $tematyka i $wiadomosc - spróbuj może pomoże, choć zdecydowanie lepszym wyjściem jest uzyciem biblioteki.
Go to the top of the page
+Quote Post
pietrov8
post
Post #5





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


  1. <?php
  2. if (!nick || !team || !wypowiedz)
  3. {
  4. echo "<b>Nie uzupełniłeś wszystkich rubryk!!!!</b>";
  5. }
  6. $wiadomosc = iconv("UTF-8", "ISO-8859-2", $wiadomosc);
  7. $tematyka = iconv("UTF-8", "ISO-8859-2", $tematyka);
  8. $wiadomosc =
  9. "Nazwa GP: ".$_POST['country']."
  10.  
  11. Nick: ".$_POST['nick']."
  12.  
  13. Zespół: ".$_POST['team']."
  14.  
  15. Pozycja w kwalifiakcjach: ".$_POST['pos_q']."
  16.  
  17. Pozycja w wyścigu: ".$_POST['pos_r']."
  18.  
  19. Wypowiedź zawodnika: ".$_POST['wypowiedz']." ";
  20.  
  21. $tematyka = $_POST['country']." ".$_POST['nick']." Wypowiedź po wyścigu";
  22.  
  23. mail ("wypowiedzi@pit-lane.info", $tematyka, $wiadomosc );
  24. echo "<b>Wiadomoć została wysłana</b><br/><br/>";
  25. echo "Potwierdzenie treści: <br/>";
  26. echo "Nazwa GP: <strong>".$_POST['country']."</strong><br/>";
  27. echo "Twój Nick: <strong>".$_POST['nick']."</strong><br/>";
  28. echo "Twój zespół: <strong>".$_POST['team']."</strong><br/>";
  29. echo "Pozycja w kwalifiakcjach: <strong>".$_POST['pos_q']."</strong><br/>";
  30. echo "Pozycja w wyścigu: <strong>".$_POST['pos_r']."</strong><br/><br/>";
  31. echo "Wypowiedź: <strong>".$_POST['wypowiedz']."</strong><br>";
  32. echo "Pozdrawia <b>Administracja</b>";
  33. ?>


Zmieniłem tak kod i niedziała ;/ Niechce korzystać z dodatkowej bibloteki
Go to the top of the page
+Quote Post
wiewiorek
post
Post #6





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


ale

  1. $wiadomosc = iconv("UTF-8", "ISO-8859-2", $wiadomosc);
  2. $tematyka = iconv("UTF-8", "ISO-8859-2", $tematyka);


daj w swoim kodzie tuż przed mail(....) u siebie
Go to the top of the page
+Quote Post
pietrov8
post
Post #7





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


Ok dzięki działa. Tylko teraz email wygląda tak:

Cytat
Nazwa GP: Brazylia

Nick: Pietrov 9

Zesp


Nie dosyła reszty

I niestety niewiem w czym może być problem ;/
Go to the top of the page
+Quote Post
potreb
post
Post #8





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. $wiadomosc = "Content-type: text/plain; charset=iso-8859-2\n";
  2. $wiadomosc = "";


Wycięty przykłąd z twojego kodu? Dlczego to nie działa? Bo deklarujesz dwa razy tą samą zmiennąexclamation.gif!!
Może wystarczy dać kropkę przed równa się.
  1. $wiadomosc = 'MIME-Version: 1.0' . "\r\n";
  2. $wiadomosc .= 'Content-type: text/html; charset=iso-8859-2' . "\r\n";
  3.  
  4. $wiadomosc .=
  5. "Nazwa GP: ".$_POST['country']."
  6.  
  7. Nick: ".$_POST['nick']."
  8.  
  9. Zespół: ".$_POST['team']."
  10.  
  11. Pozycja w kwalifiakcjach: ".$_POST['pos_q']."
  12.  
  13. Pozycja w wyścigu: ".$_POST['pos_r']."
  14.  
  15. Wypowiedź zawodnika: ".$_POST['wypowiedz']." ";
  16.  
  17.  
  18. $tematyka = $_POST['country']." ".$_POST['nick']." Wypowiedź po wyścigu";
  19.  
  20. mail ("wypowiedzi@pit-lane.info", $tematyka, $wiadomosc );


Jeżeli masz stronę w utf-8 jeszcze iconv.

Ten post edytował potreb 20.10.2009, 21:16:21


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

Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




teraz tak: popatrz tu: mail i powiedz jak wygląda 3 argument funkcji, ma się tam znaleźć treść maila, a Ty żeby poprawnie wysyłało znaki muszisz ustawić odpowiednie nagłówki (inaczej headres) do tegoż maila, bez kombinowania z iconv.


--------------------
Go to the top of the page
+Quote Post
pietrov8
post
Post #10





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $wiadomosc =
  3. "Nazwa GP: ".$_POST['country']."
  4.  
  5. Nick: ".$_POST['nick']."
  6.  
  7. Zespół: ".$_POST['team']."
  8.  
  9. Pozycja w kwalifiakcjach: ".$_POST['pos_q']."
  10.  
  11. Pozycja w wyscigu: ".$_POST['pos_r']."
  12.  
  13. Wypowiedzi zawodnika: ".$_POST['wypowiedz']." ";
  14.  
  15. $tematyka = $_POST['country']." ".$_POST['nick']." Wypowiedzi po wyscigu";
  16.  
  17. $wiadomosc = iconv("UTF-8", "ISO-8859-2", $wiadomosc);
  18. $tematyka = iconv("UTF-8", "ISO-8859-2", $tematyka);
  19. mail ("wypowiedzi@pit-lane.info", $tematyka, $wiadomosc );
  20. echo "<b>Wiadomosc zostala wyslana</b><br/><br/>";
  21. echo "Potwierdzenie tresci: <br/>";
  22. echo "Nazwa GP: <strong>".$_POST['country']."</strong><br/>";
  23. echo "Twój Nick: <strong>".$_POST['nick']."</strong><br/>";
  24. echo "Twój zespól: <strong>".$_POST['team']."</strong><br/>";
  25. echo "Pozycja w kwalifiakcjach: <strong>".$_POST['pos_q']."</strong><br/>";
  26. echo "Pozycja w wyscigu: <strong>".$_POST['pos_r']."</strong><br/><br/>";
  27. echo "Wypowiedzi: <strong>".$_POST['wypowiedz']."</strong><br>";
  28. echo "Pozdrawia <b>Administracja</b>";
  29. ?>


Aktualna wersja kodu i wciągu dalszym ten sam błąd z niedosyłaniem wszystkich elementów.

Cytat
Nazwa GP: Brazylia

Nick: Pietrov 9

Zesp


Nierozumiem dlaczego zatrzymuje się właśnie w tym miejscu ;/
Go to the top of the page
+Quote Post
piotrooo89
post
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to co Ty wyczyniasz z prostą funkcja wysyłania maila to pier*****ie kotka za pomocą młotka... poczytaj o nagłówkach i wywal to iconv.


--------------------
Go to the top of the page
+Quote Post
potreb
post
Post #12





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


O jej dałem ci przykład, umiejętność wklejenia, tak jak piotrooo, zajrzyj do manuala i poczytaj o nagłówkach (headers) w funkcji mail


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

Go to the top of the page
+Quote Post
pietrov8
post
Post #13





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


Ok dziękuję wszystkim za pomoc smile.gif

Problem rozwiązany smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post
Post #14


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to teraz powiedz jak go rozwiązałeś bo mnie to trochę ciekawi.


--------------------
Go to the top of the page
+Quote Post
pietrov8
post
Post #15





Grupa: Zarejestrowani
Postów: 188
Pomógł: 1
Dołączył: 4.07.2009
Skąd: ...

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $to = 'wypowiedzi@pit-lane.info';
  3.  
  4. $subject = 'Wypowiedź po wyścigu';
  5.  
  6. $message = "Nazwa GP: ".$_POST['country']."
  7. Nick: ".$_POST['nick']."
  8. Zespół: ".$_POST['team']."
  9. Pozycja w kwalifiakcjach: ".$_POST['pos_q']."
  10. Pozycja w wyscigu: ".$_POST['pos_r']."
  11. Wypowiedz zawodnika: ".$_POST['wypowiedz']."
  12. ";
  13. $headers = 'MIME-Version: 1.0' . "\r\n";
  14. $headers .= 'Content-type: text/html; charset=iso-8859-2' . "\r\n";
  15.  
  16. $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
  17. $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
  18. $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
  19. $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
  20.  
  21. mail($to, $subject, $message, $headers);
  22. ?>
Go to the top of the page
+Quote Post
piotrooo89
post
Post #16


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




i co dało się? pamiętaj jedno manual nigdy nie kłamie i zawsze zna odpowiedź.


--------------------
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 Aktualny czas: 20.08.2025 - 10:33