Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problemy z formularzami
Forum PHP.pl > Forum > Przedszkole
sztibiribi
witam.. mam taki kod z prostym formularzem pocztowym .. ktory nie robi polskich znakow w diadomosciach ktore odbieram.. czyli jezeli napiszemy wiadomosc w ktorej bedzie kilka enterow i wyslemy ja, wiaodmosc ktora dojdzie od mnie bedzie pisana w jednej linii.. jak to obejsc? oto kod:

  1. f (empty($_POST['submit'])) {
  2. echo "<table border=\"0\"><form method=\"post\">
  3. <tr><td><p class=\"kontakt\">..lub poprostu napisz wiadomość</p></td></tr>
  4. <tr><td><textarea name=\"tresc\" style=\"width: 700px; height: 100px; background: url(images/kontakt_1.jpg);\"></textarea></td></tr>
  5. <tr><td><input type=\"text\" name=\"imie\" style=\"width: 350px; background: url(images/kontakt_2.jpg);\">
  6. <input type=\"text\" name=\"email\" style=\"width: 350px; background: url(images/kontakt_3.jpg);\"></td></tr>
  7. <tr><td><div align=\"right\"><input type=\"submit\" name=\"submit\" value=\"Wyślij wiadomość\">&nbsp;<input type=\"reset\" value=\"Skasuj treści\"></div></td></form></tr>
  8. </table>";
  9. }
  10.  
  11. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  12. $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  13.  
  14. $from = "$_POST[imie] <$_POST[email]>";
  15. $header = "From: $from\nReply-to: $from\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
  16.  
  17. @mail("$email","Wiadomosc ze strony WWW.FISCHER.EDU.PL","$message","$header")
  18. or die('Nie udało się wysłać wiadomości');
  19. echo "<div align=\"center\"><strong>Dziekujemy! Twoja wiadomość została wysłana poprawnie!<br>Postaramy sie odpowiedzieć tak szybko jak tylko jest to możliwe.</strong></div>";
  20. }
  21. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!<br><a href=\"kontakt.php\" class=\"aktualnosci\">Kliknij tutaj aby wrócić do formularza</a></span>";


dodam, ze gdy przed edycja kodu byly wyswietlane w wiadomosci koncowej enterki w tekscie, ale nie bylo polskich znakow czyt. krzaki ;d .. zmienione zostalo:
  1. $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  2. $header = "From: $_POST[imie] <$_POST[email]>";
  3. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")

prosze o pomoc bo juz nie wiem co robic sad.gif
franki01
1. Jakie masz zadeklarowane kodowanie pliku w meta tagach?
2. nl2br
3. Postaraj się też o odpowiednie przetworzenie wpisanej wiadomości - htmlspecialchars, stripslashes.
sztibiribi
1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

heh, jak bys byl tak dobry i przerobił go na szybko to byl bym megasnie wdzięczny.. heh, mam dużo pracy a czasu mało, a do tego ta pozna godzina już..
ArekJ
  1. if (empty($_POST['submit'])) {
  2. echo "<table border=\"0\"><form method=\"post\">
  3. <tr><td><p class=\"kontakt\">..lub poprostu napisz wiadomość</p></td></tr>
  4. <tr><td><textarea name=\"tresc\" style=\"width: 700px; height: 100px; background: url(images/kontakt_1.jpg);\"></textarea></td></tr>
  5. <tr><td><input type=\"text\" name=\"imie\" style=\"width: 350px; background: url(images/kontakt_2.jpg);\">
  6. <input type=\"text\" name=\"email\" style=\"width: 350px; background: url(images/kontakt_3.jpg);\"></td></tr>
  7. <tr><td><div align=\"right\"><input type=\"submit\" name=\"submit\" value=\"Wyślij wiadomość\"> <input type=\"reset\" value=\"Skasuj treści\"></div></td></form></tr>
  8. </table>";
  9. }
  10.  
  11. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  12. $message = nl2br('Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]');
  13.  
  14. $from = "$_POST[imie] <$_POST[email]>";
  15. $header = "From: $from\nReply-to: $from\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
  16.  
  17. @mail("$email","Wiadomosc ze strony WWW.FISCHER.EDU.PL","$message","$header")
  18. or die('Nie udało się wysłać wiadomości');
  19. echo "<div align=\"center\"><strong>Dziekujemy! Twoja wiadomość została wysłana poprawnie!<br>Postaramy sie odpowiedzieć tak szybko jak tylko jest to możliwe.</strong></div>";
  20. }
  21. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!<br><a href=\"kontakt.php\" class=\"aktualnosci\">Kliknij tutaj aby wrócić do formularza</a></span>";

Tak powinno być OK.
i następnym razem rób wcięcia, bo nieestetyczny ten kod.
sztibiribi
niestety tez nie dziala.. teraz tresc otrzymanego emaila wyglada dokladnie tak
  1. Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]

cojack
Bo kolega manuala nie czyta, ale jak dasz:


  1. $message = nl2br("Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]");

to będzie ok
CyberDuck_
Ustaw sobie w naglowku kodowanie i bedzie ok :
  1. $temat = "=?iso-8859-2?B?".base64_encode("nowa wiadomość testowa ąćśółżź")."?=";
  2. $naglowek = "Content-Type: text;charset='iso-8859-2'";
  3. @mail($email_uzytkownika, $temat, $tekst, $naglowek);


Kodowanie na stronie i kodowanie wiadomosci w email
to sa dwie rozne rzeczy.
erix
Cytat
heh, jak bys byl tak dobry i przerobił go na szybko to byl bym megasnie wdzięczny.. heh, mam dużo pracy a czasu mało, a do tego ta pozna godzina już..

To zacząłbyś od przeszukania forum i byś znalazł co najmniej 5 takich tematów, jak Twój. Chcesz, żeby szanowano Twój czas, szanuj i nasz.
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.