herbit Opublikowano 21 Marca 2013 Udostępnij Opublikowano 21 Marca 2013 Na wstępie poproszę, aby nie odsyłać mnie do google. Na prawdę siedzę kolejną godzinę szukając rozwiązania na różnych forach i po prostu wysiadam już. Nie jestem programistą, nie znam się na php. W sieci da się znaleźć sporo skryptów, które za pomocą funkcji kopiuj-wklej dostosowuję do swoich potrzeb. Nie inaczej było i w tym przypadku. Potrzebowałem prostego formularza do zamawiania ogłoszeń drobnych w gazecie regionalnej i takowy znalazłem. Wszystko śmiga bez zarzutów, po czym dowiaduję się, że u osoby odbierającej zgłoszenia wysyłane za pomocą formularza, nie wyświetlają się polskie znaki. Sprawa o tyle mnie zdziwiła, że wspomniane zgłoszenia na mojego maila przychodzą z polskimi znakami. Nie bardzo wiem co dalej robić. Kod formularza: <form method="POST" name="contactform" action="contact-form-handler.php"> <p> <br> <label for='tresc'>Treść:</label> <br> <textarea name="tresc" cols="40" class="form_red"></textarea> </p> <p> <br> Wersja <br> <select name="wersja" size="1" class="form_red"> <option value="podstawowa">podstawowa</option> <option value="pogrubienie">pogrubienie</option> <option value="wersalik">wersalik</option> <option value="pogrubiony wersalik">pogrubiony wersalik</option> </select> </p> <p> <br> Ramka <br> <select name="ramka" size="1" class="form_red"> <option value="nie">nie</option> <option value="tak">tak</option> </select> </p> <p> <br> Ilość edycji <br> <input name="ilosc" type="text" class="form_red" size="2" maxlength="2"> </p> <p> <br> <strong>Dane kontaktowe</strong> </p> <p> <br> <label for="imie">imie i nazwisko</label><br> <input name="imie" type="text" class="form_red" id="imie"> </p> <p> <br> <label for="tel">Telefon</label><br> <input name="tel" type="text" class="form_red"> </p> <p> <br> <label for="email">Email</label><br> <input name="email" type="text" class="form_red"> </p> <p> <br> <strong>Faktura VAT</strong> </p> <p> <br> <label for="firma">Nazwa firmy</label><br> <input type="text" name="firma" id="firma"> </p> <p> <br> <label for="adres">Adres</label><br> <input name="adres" type="text"> </p> <p> <br> <label for="miejscowosc">Miejscowość</label><br> <input name="miejscowosc" type="text"> </p> <p> <br> <label for="kod">Kod pocztowy</label><br> <input name="kod" type="text"> </p> <p> <br> <label for="nip">NIP</label><br> <input name="nip" type="text"> </p> <p> <br> <input type="submit" value="Wyślij"><br></p> </form> Kod php: <?php $errors = ''; $myemail = 'somadream@wp.pl';//<-----Put Your email address here. if(empty($_POST['imie']) || empty($_POST['email']) || empty($_POST['tel'])) { $errors .= "\n Błąd: Proszę wypełnić wymagane pola"; } $tresc = $_POST['tresc']; $imie = $_POST['imie']; $email_address = $_POST['email']; $tel = $_POST['tel']; $ilosc = $_POST['ilosc']; $wersja = $_POST['wersja']; $ramka = $_POST['ramka']; $firma = $_POST['firma']; $adres = $_POST['adres']; $miejscowosc = $_POST['miejscowosc']; $kod = $_POST['kod']; $nip = $_POST['nip']; if (!preg_match( "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email_address)) { $errors .= "\n Błąd: Nieprawidłowy adres email"; } if( empty($errors)) { $to = $myemail; $email_subject = "Ogłoszenie drobne - osoba zamawiająca: $imie"; $email_body = "OGŁOSZENIE DROBNE". " Szczegóły zamówienia: \n treść: $tresc \n ilość: $ilosc \n wersja: $wersja\n ramka: $ramka\n imię i nazwisko: $imie \n email: $email_address \n telefon: $tel \n nazwa firmy: $firma \n adres: $adres \n miejscowość: $miejscowosc \n kod pocztowy: $kod \n nip: $nip"; $headers = "Od: $myemail\n"; $headers .= "Adres email nadawcy: $email_address"; mail($to,$email_subject,$email_body,$headers); //redirect to the 'thank you' page header('Location: thankyou.html'); } ?> <!doctype html> <html> <head> <title>Contact form handler</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <!-- This page is displayed only if there is some error --> <?php echo nl2br($errors); ?> </body> </html> Będę wdzięczny za jakąkolwiek pomoc. Lamed Web-Project - Studio Graficzne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 21 Marca 2013 Udostępnij Opublikowano 21 Marca 2013 Zainteresuj się nagłówkami wiadomości pocztowej w kontekście określenia kodowania: "Content-Type: text/plain; charset=UTF-8\n" https://www.php.net/m...nction.mail.php ---- lub: https://www.google.pl/search?hl=pl&q=mail+php+polskie+znaki+utf-8 HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amigo Opublikowano 21 Marca 2013 Udostępnij Opublikowano 21 Marca 2013 U mnie w zmiennej ze wzoru jest iso-8859-2, ale sam wstawiasz kodowanie, jakie chcesz. Powinno śmiagać. $header= "From: $email \nContent-type: text/html; charset=iso-8859-2; \r\n"; Nie przegrałeś, dopóki walczysz! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
herbit Opublikowano 21 Marca 2013 Autor Udostępnij Opublikowano 21 Marca 2013 gracias amigo! coś zaczyna się dziać pozytywnego z polskimi znakami w formularzu. Lamed Web-Project - Studio Graficzne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
skorpionek Opublikowano 22 Marca 2013 Udostępnij Opublikowano 22 Marca 2013 Przepraszam, że podpinam się pod temat ale nie chcę zaśmiecać forum. Już 2 godziny przeszukuję google i nadal nie wiem jak rozwiązać mój problem, a mianowicie po pobraniu tekstu z bazy danych mySQL nie wyświetlają mi się polskie znaki. W sekcji head pliku .php mam: <meta charset="uft-8" /> więc to nie z winy kodowania html. Do obsługi mySQL używam phpmyadmin online dostarczanego przez home.pl (mam u nich serwer) i tu się prawdopodobnie pogubiłem. Są w sumie 3 okienka do wyboru czegoś językopodobnego (poczętkujący jestem ) "Sortowanie połączenie z serwerem", oraz 2x "Metoda porównywania napisów" (zarówno w ustawieniach bazy jak i konkretnej tabeli). Próbowałem to poustawiać na wszystkie możliwe sposoby ale ciągle zamiast polskich liter mam krzaczki (znaki zapytania w czarnych rombach). Zarówno PHP jak i my SQL zacząłem się uczyć niedawno więc prosiłbym o wyjaśnienie wszystkiego łopatologicznie Wydaje mi się, że nie ma potrzeby wklejać kodu bo problem jest dosyć ogólny ale jeśli się okaże, że jest inaczej to oczywiście wkleję. Pozdrawiam i z góry dziękuję za pomoc. edit// Jeśli to ma jakieś znaczenie to w notepadzie++ mam ustawione kodowanie znaków na UTF-8 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sirgomo Opublikowano 23 Marca 2013 Udostępnij Opublikowano 23 Marca 2013 Poczytaj o "mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8"); mysql_query("SET collation_connection = utf8_polish_ci");" Pozatym sprawdz czy w bazie masz polskie znaki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
skorpionek Opublikowano 23 Marca 2013 Udostępnij Opublikowano 23 Marca 2013 Się naszukałem, nazmieniałem a w gruncie rzeczy to nie było takie trudne Dzięki wielkie sirgomo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
herbit Opublikowano 24 Lutego 2017 Autor Udostępnij Opublikowano 24 Lutego 2017 Mam niestety podobny problem. Poniższy formularz nie przesyła polskich znaków: <?php $mail->CharSet="UTF-8"; // specify your email here $to = 'mail@mail.pl'; // Assigning data from $_POST array to variables if (isset($_POST['name'])) { $name = $_POST['name']; } if (isset($_POST['email'])) { $from = $_POST['email']; } if (isset($_POST['company'])) { $company = $_POST['company']; } if (isset($_POST['message'])) { $message = $_POST['message']; } // Construct subject of the email $subject = 'Wiadomość ze strony internetowej od ' . $name; // Construct email body $body_message .= 'Imię: ' . $name . "\r\n"; $body_message .= 'Email: ' . $from . "\r\n"; $body_message .= 'Telefon: ' . $company . "\r\n"; $body_message .= 'Wiadomość: ' . $message . "\r\n"; // Construct headers of the message $headers = 'Od: ' . $from . "\r\n"; $headers .= 'Odpowiedz: ' . $from . "\r\n"; $mail_sent = mail($to, $subject, $body_message, $headers); if ($mail_sent == true){ ?> <script language="javascript" type="text/javascript"> window.alert("Dziekujemy za wysłanie wiadomości! Skontaktujemy się z Państwem w najbliższym czasie."); </script> <?php } else { ?> <script language="javascript" type="text/javascript"> window.alert("Wystąpił błąd podczas wysyłania wiadomości. Prosimy spróbować ponownie."); </script> <?php } // End else ?> HTML wygląda tak mniej więcej: <html lang="pl-PL"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> Zastanawiam się gdzie może tkwić błąd? Lamed Web-Project - Studio Graficzne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 Pliki zapisuj jako utf-8 NIE ANSI HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
herbit Opublikowano 7 Marca 2017 Autor Udostępnij Opublikowano 7 Marca 2017 Dzięki za info Mion. Zapisałem tak formularz w notatniku (Zapisz jako>Kodowane UTF-8), niestety nadal brak polskich znaków. Lamed Web-Project - Studio Graficzne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 7 Marca 2017 Udostępnij Opublikowano 7 Marca 2017 Zastosuj jakąś sprawdzona klasę do wysyłki e-maili np: https://github.com/PHPMailer/PHPMailer HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
herbit Opublikowano 8 Marca 2017 Autor Udostępnij Opublikowano 8 Marca 2017 A możesz mi dokładnie podać co mam zrobić, jaką klasę zastosować w którym miejscu? Niestety nie jestem programistą. Lamed Web-Project - Studio Graficzne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.