Witam, To mój pierwszy post tutaj. Zaznaczam, że nie jestem biegły w znajomości php.... Posiadam na serwerze home stronę a na niej taki formularz. Borykam się jednak z problemami. 1. polskie znaki: Formularz nie przesyła w wiadomości polskich znaków 2. Po wysłaniu wiadomości, w polu temat wiadomości, pojawia się tekst: -f adres@poczta.pl, a ja chciałbym by w tym miejscu pojawiał się tekst: wiadomość ze strony www. Ogólnie polskie znaki na całej stronie, jak i te w tekstach opisujące pola formularza: imię:, Treść wiadomości: na stronie wyświetlają się prawidłowo. Nie wyświetlają się one tylko w mailu wysłanym, tym formularzem. Bardzo gorąco proszę kogoś życzliwego i potrafiącego to ogarnąć o korektę kodu, tak bym mógł go wkleić stąd na stronę www. Nie jestem programistą..... Kod formularza: PHP: <?phpif ((empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['email'])) and !empty($_POST['submit'])) {// wyświetlamy formularzecho "<form method=\"post\" action=\"#\"><table border=\"0\" class=\"formtable\" summary=\" formularz kontaktowy\"><tr><td class=\"formlewy \">* Treść wiadomości:</td><td><textarea name=\"tresc\"rows=\"5\" cols=\"20\">".$_POST['tresc']."</textarea></td></tr><tr><td class=\"formlewy\">* Imię:</td><td><input type=\"text\" name=\"imie\" class=\"pole\" />".$_POST['imie']."</td></tr><tr><td class=\"formlewy\">Telefon:</td><td><input type=\"text\" name=\"telefon\" class=\"pole\" /></td></tr><tr><td class=\"formlewy\">* e-mail:</td><td><input type=\"text\" name=\"email\" class=\"pole\" />".$_POST['email']."</td></tr><tr><td> </td><td><input type=\"submit\" name=\"submit\" value=\"Wyślij\" class=\"wyslij\"/> <input type=\"reset\" value=\"Reset\" class=\"wyczysc\"/></td></tr><tr><td colspan=\"2\">";// lub w przypadku nie wypełnienia formularza do końcaecho "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";echo "</td></tr></table></form>";}elseif (empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['email']) and empty($_POST['submit'])) {// wyświetlamy formularzecho "<form method=\"post\" action=\"#\"><table border=\"0\" class=\"formtable\" summary=\" formularz kontaktowy\"><table><tr><td class=\"formlewy\">* Treść wiadomości:</td><td><textarea name=\"tresc\" rows=\"5\" cols=\"40\"></textarea></td></tr><tr><td class=\"formlewy\">* Imię: </td><td><input type=\"text\" name=\"imie\" class=\"pole\" /></td></tr><tr><td class=\"formlewy\">Telefon:</td><td><input type=\"text\" name=\"telefon\" class=\"pole\" /></td></tr><tr><td class=\"formlewy\">* e-mail:</td><td><input type=\"text\" name=\"email\" class=\"pole\" /></td></tr><tr><td> </td><td><input type=\"submit\" name=\"submit\" value=\"Wyślij\" class=\"wyslij\" /> <input type=\"reset\" value=\"Wyczyść\" class=\"wyczysc\"/></td></tr></table></form>";}// sprawdzamy, czy zmienne przesłane z formularza nie są pusteelseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['imie']) && !empty($_POST['email'])) {// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość// zmienna $message zawiera treść wiadomości$message = "Treść wiadomości: $_POST[tresc] $_POST[telefon] Wysłał: $_POST[imie] mail: $_POST[email]";// Ta kubuhja ma odpowiadać za pokskie znaki$header = 'Content-type: text/html; charset=utf-8';// zmienna $header zawiera przede wszystkim adres zwrotny$header = "From: adres@poczta.pl $_POST[imie] <$_POST[email]> ";mail("adres@poczta.pl","-f adres@poczta.pl", "Wiadomość ze strony www","$message","$header");mail($header,"Wiadomosc ze strony www","$message","$header")// tu ewentualnie usunąć emaila// funkcja mail() za pomocą której wiadomość zostanie wysłana or die(' Wiadomość została wysłana!');// wyświetlenie komunikatu w przypadku powodzeniaecho "<div align=\"center\"><Nie udało się wysłać wiadomości.</p></strong></div>";}// Wyświetla, gdy nie uda się wysłać wiadomości?> Z góry dziękuję za wyrozumiałość i pomoc.....
Co do tematu wiadomości tu masz błąd: PHP: mail("adres@poczta.pl","-f adres@poczta.pl", "Wiadomość ze strony www","$message","$header"); Nie ta kolejność - "-f adres@poczta.pl" powinno być na końcu i raczej bez cudzysłowia: Kod: bool mail ( string $do , string $temat , string $treść [, string $dodatkowe_nagłówki [, string $dodatkowe_parametry ]] ) I to drugie wywołanie mail() chyba nie jest potrzebne: PHP: mail($header,"Wiadomosc ze strony www","$message","$header") A co do kodowania to osobiście używam tylko jednego zapisu na początku strony: PHP: header('Content-Type: text/html; charset=UTF-8'); i wysyła wiadomość ze znakami diakrytycznymi.
Do samej wysyłki powinno pomóc jak zmienisz: PHP: mail("adres@poczta.pl","-f adres@poczta.pl", "Wiadomość ze strony www","$message","$header");mail($header,"Wiadomosc ze strony www","$message","$header") na: PHP: mail("adres@poczta.pl","Wiadomość ze strony www",$message,$header, "-f adres@poczta.pl");//mail($header,"Wiadomosc ze strony www","$message","$header") Nie wiem natomiast jak podpinasz formularz do strony, ale jeśli jest to np. include, to wystarczy w głównym (w którym jest include'owany formularz) pliku, na początku, dodać zapis jaki wskazałem: PHP: header('Content-Type: text/html; charset=UTF-8');
Witam, dzięki za zainteresowanie i zaangażowanie. Niestety...... 1. Przeniesienie fragmentu -f adres@poczta.pl na koniec frazy: PHP: ; mail("adres@poczta.pl", "Wiadomość ze strony www","$message","$header", "-f adres@poczta.pl") powoduje nie wysyłanie się maila. Gdy, jest po "staremu", formularz wysyła wiadomość na wskazany adres, ale bez tytułu wiadomości w nagłówku, jak pisałem w pierwszym poście. 2. Na wszystkich stronach mam ustawione kodowanie utf-8 HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> I treść stron wyświetla się we wszystkich elementach, (tych includowanych też), POPRAWNIE z polskimi znakami łącznie z tą zakładką, gdzie jest formularz. Problem występuje tylko w wiadomości mail, wysłanej tym formularzem.
W takim razie musi być coś nie tak gdzie indziej, bo sprawdziłem kod Twojego u siebie z modyfikacja jaką wskazałem i działa. Może włącz logowanie błędów PHP i zobacz co interpreter zwraca. PS. Pamiętaj, że poczta w domenie, której dotyczy kwestia (w kodzie - poczta.pl) musi być obsługiwana po stronie serwera w home.pl, na którym jest strona.
OK..... to rozumiem, że: ad. 1. Pocztę mail powinienem założyć na home.pl? Ta, jest na innym serwerze, ale się wysyła problem jest tylko z tym tytułem wiadomości w nagłówku. ad. 2, to co z polskimi znakami? Wstawiłbym tu screen strony, na którym widać, że treść strony wyświetla poprawnie polskie znaki, zakładka z formularzem też jest poprawnie wyświetlana ale chyba się nie da bezpośrednio z komputera..... tylko mail z treściąformularza źlr wyświetla znaki.
@Wawrzek nie bardzo rozumiem Twój ostatni wpis. Chyba nie bardzo potrafisz obsługiwać forum i opcję cytowania. A dwa: formularz, który tutaj załączyłeś to jakaś masakra - aż się prosi by spamować tym formularzem