Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Polskie znaki w formularzu
Forum PHP.pl > Forum > Przedszkole
pietrov8
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
wiewiorek
Użyć iconv("UTF-8", "ISO-8859-2", $tekst) do zmiany kodowania wysyłanego tekstu albo najlepiej uzyć biblioteki phpmailer.
pietrov8
Czyli do każdej zmiennej mam to użyć??
wiewiorek
Do $tematyka i $wiadomosc - spróbuj może pomoże, choć zdecydowanie lepszym wyjściem jest uzyciem biblioteki.
pietrov8
  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
wiewiorek
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
pietrov8
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 ;/
potreb
  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.
piotrooo89
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.
pietrov8
  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 ;/
piotrooo89
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.
potreb
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
pietrov8
Ok dziękuję wszystkim za pomoc smile.gif

Problem rozwiązany smile.gif
piotrooo89
to teraz powiedz jak go rozwiązałeś bo mnie to trochę ciekawi.
pietrov8
  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. ?>
piotrooo89
i co dało się? pamiętaj jedno manual nigdy nie kłamie i zawsze zna odpowiedź.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.