Funkcja mail(), a Polskie znaki |
Funkcja mail(), a Polskie znaki |
30.03.2015, 00:07:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 0 Dołączył: 11.07.2013 Ostrzeżenie: (0%) |
Witam,
szukałem na Google, jednak żadne znalezione przeze mnie rozwiązanie nie pasuję do mojego kodu. Otóż gdy otrzymuję adres e-mail z mojej strony (funckaj mail()), to zamiast Polskich znaków są krzaczki. Kodowanie strony jest w utf8, i jego zmiana nie pomaga. Za każdym razem jest to samo, byłym bardzo wdzięczny jakby ktoś pokazał mi w któym miejscu mojego kodu coś dodać, aby to zaskoczyło...
|
|
|
30.03.2015, 00:26:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) |
dodaj odpowiednie kodowanie w nagłówkach maila
|
|
|
30.03.2015, 01:34:32
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 0 Dołączył: 11.07.2013 Ostrzeżenie: (0%) |
|
|
|
30.06.2016, 07:41:53
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Witam, temat chyba nie został zamknięty, a pomoc została udzielona. Chciałbym się podpiąć i zapytać gdzie jest błąd w kodzie, PROBLEM MAM TAKI SAM nie wyświetlają się polskie znaki w wiadomości i temacie. Przeszukałem internet i nic.
<?php if($_POST) { $headers = "From: $_POST[mail] \r\nContent-type: text/html; charset=utf-8"; $to_Email = "k.juszkiewicz@bkfdesign.com"; //Replace with recipient email address $subject = 'AJDOORS - wiadomość ze strony '.$_SERVER['SERVER_NAME']; //Subject line for emails //check if its an ajax request, exit if not if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { //exit script outputting json data $output = json_encode( array( 'type'=>'error', 'text' => 'Request must come from Ajax' )); die($output); } //check $_POST vars are set, exit if any missing if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"])) { $output = json_encode(array('type'=>'error', 'text' => 'Wymagane pola są niewypełnione!')); die($output); } //Sanitize input data using PHP filter_var(). $user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); $user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); $user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); $user_Message = str_replace("\'", "'", $user_Message); $user_Message = str_replace("'", "'", $user_Message); //additional php validation if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error. { $output = json_encode(array('type'=>'error', 'text' => 'Imię i nazwisko jest za krótkie!')); die($output); } if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation { $output = json_encode(array('type'=>'error', 'text' => 'Adres e-mail jest niepoprawny!')); die($output); } if(strlen($user_Message)<5) //check emtpy message { $output = json_encode(array('type'=>'error', 'text' => 'Wiadomość jest za krótka.')); die($output); } //proceed with PHP email. $headers = 'From: '.$user_Email.'' . "\r\n" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $sentMail = @mail($to_Email, $subject, $user_Message . "\r\n\n" .'-- '.$user_Name. "\r\n" .'-- '.$user_Email, $headers); if(!$sentMail) { $output = json_encode(array('type'=>'error', 'text' => 'Nie można wysłać wiadomości! Sprawdź konfigurację PHP poczty.')); die($output); }else{ $output = json_encode(array('type'=>'message', 'text' => 'Hey '.$user_Name .'! Dzięki za wiadomość. Będziemy w kontakcie.')); die($output); } } ?> |
|
|
30.06.2016, 08:49:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) |
Masz dwa razy zmienną $headers i w drugiej nie ma kodowania ustawionego.
A tu masz wyjaśnione dlaczego tytuł maila się "krzaczy" LINK |
|
|
27.07.2016, 07:58:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Dodałem do drugiej zmiennej kodowanie, tak jak napisałeś:
//proceed with PHP email. $headers = 'From: '.$user_Email.'' . "\r\n Content-type: text/html; charset=utf-8" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); i ciągle mam problem w postaci: ÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹ ÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹÄĹŝŚÄĹĂĹ <?php if($_POST) { $headers = "Content-type: text/html; charset=utf-8"; $to_Email = "k.juszkiewicz@bkfdesign.com"; //Replace with recipient email address $subject = 'AJDOORS - wiadomość ze strony '.$_SERVER['SERVER_NAME']; //Subject line for emails //check if its an ajax request, exit if not if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { //exit script outputting json data $output = json_encode( array( 'type'=>'error', 'text' => 'Request must come from Ajax' )); die($output); } //check $_POST vars are set, exit if any missing if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"])) { $output = json_encode(array('type'=>'error', 'text' => 'Wymagane pola są niewypełnione!')); die($output); } //Sanitize input data using PHP filter_var(). $user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); $user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); $user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); $user_Message = str_replace("\'", "'", $user_Message); $user_Message = str_replace("'", "'", $user_Message); //additional php validation if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error. { $output = json_encode(array('type'=>'error', 'text' => 'Imię i nazwisko jest za krótkie!')); die($output); } if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation { $output = json_encode(array('type'=>'error', 'text' => 'Adres e-mail jest niepoprawny!')); die($output); } if(strlen($user_Message)<5) //check emtpy message { $output = json_encode(array('type'=>'error', 'text' => 'Wiadomość jest za krótka.')); die($output); } //proceed with PHP email. $headers = 'From: '.$user_Email.'' . "\r\n Content-type: text/html; charset=utf-8" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $sentMail = @mail($to_Email, $subject, $user_Message . "\r\n\n" .'-- '.$user_Name. "\r\n" .'-- '.$user_Email, $headers); if(!$sentMail) { $output = json_encode(array('type'=>'error', 'text' => 'Nie można wysłać wiadomości! Sprawdź konfigurację PHP poczty.')); die($output); }else{ $output = json_encode(array('type'=>'message', 'text' => 'Hey '.$user_Name .'! Dzięki za wiadomość. Będziemy w kontakcie.')); die($output); } } ?> |
|
|
27.07.2016, 08:08:23
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 477 Pomógł: 6301 Dołączył: 27.12.2004 |
Zacznij prosze uzywac bbcode bo kod jest ciezko czytelny.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
27.07.2016, 08:30:33
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
No pewnie, że tak, oczywiście masz rację, mam nadzieję, że teraz jest lepiej. Dzięki za uwagę.
Kod <?php
if($_POST) { $headers= "Content-typ: text/html; charset=utf-8r\n"; $to_Email = "k.juszkiewicz@bkfdesign.com"; //Replace with recipient email address $subject = 'AJDOORS - wiadomość ze strony '.$_SERVER['SERVER_NAME']; //Subject line for emails //check if its an ajax request, exit if not if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { //exit script outputting json data $output = json_encode( array( 'type'=>'error', 'text' => 'Request must come from Ajax' )); die($output); } //check $_POST vars are set, exit if any missing if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"])) { $output = json_encode(array('type'=>'error', 'text' => 'Wymagane pola są niewypełnione!')); die($output); } //Sanitize input data using PHP filter_var(). $user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); $user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); $user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); $user_Message = str_replace("\'", "'", $user_Message); $user_Message = str_replace("'", "'", $user_Message); //additional php validation if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error. { $output = json_encode(array('type'=>'error', 'text' => 'Imię i nazwisko jest za krótkie!')); die($output); } if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation { $output = json_encode(array('type'=>'error', 'text' => 'Adres e-mail jest niepoprawny!')); die($output); } if(strlen($user_Message)<5) //check emtpy message { $output = json_encode(array('type'=>'error', 'text' => 'Wiadomość jest za krótka.')); die($output); } //proceed with PHP email. $headers = 'From: '.$user_Email.'' . "\r\n Content-type: text/html; charset=utf-8" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $sentMail = @mail($to_Email, $subject, $user_Message . "\r\n\n" .'-- '.$user_Name. "\r\n" .'-- '.$user_Email, $headers); if(!$sentMail) { $output = json_encode(array('type'=>'error', 'text' => 'Nie można wysłać wiadomości! Sprawdź konfigurację PHP poczty.')); die($output); }else{ $output = json_encode(array('type'=>'message', 'text' => 'Hey '.$user_Name .'! Dzięki za wiadomość. Będziemy w kontakcie.')); die($output); } } ?> |
|
|
27.07.2016, 15:54:39
Post
#9
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) |
źle:
Cytat Content-typ: text/html; charset=utf-8r\n dobrze Cytat Content-type: text/html; charset=utf-8r\n
Ten post edytował mlawnik 27.07.2016, 15:55:00 -------------------- Pozdrawiam,
mlawnik Cytat(nospor) Jedzmy gówno.... miliony much nie może się przecież mylić |
|
|
12.08.2016, 08:16:57
Post
#10
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Dzięki za zaangażowanie w temat, ale to niestety nie to. Poprawiłem błąd, ale problem nie zniknął.
Forumowicze, macie jeszcze jakieś sugestie? Jakiekolwiek?! Wznawiam prośbę o pomoc, może ktoś pomóc z tym nieszczęsnym PHP? Sam nie jestem w stanie tego rozwiązać. Kod <?php
if($_POST) { $to_Email = "k.juszkiewicz@bkfdesign.com"; //Replace with recipient email address $subject = 'AJDOORS - e-mail ze strony '.$_SERVER['SERVER_NAME']; //Subject line for emails //check if its an ajax request, exit if not if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { //exit script outputting json data $output = json_encode( array( 'type'=>'error', 'text' => 'Request must come from Ajax' )); die($output); } //check $_POST vars are set, exit if any missing if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"])) { $output = json_encode(array('type'=>'error', 'text' => 'Wymagane pola są niewypełnione!')); die($output); } //Sanitize input data using PHP filter_var(). $user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); $user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); $user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); $user_Message = str_replace("\'", "'", $user_Message); $user_Message = str_replace("'", "'", $user_Message); //additional php validation if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error. { $output = json_encode(array('type'=>'error', 'text' => 'Imię i nazwisko jest za krótkie!')); die($output); } if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation { $output = json_encode(array('type'=>'error', 'text' => 'Adres e-mail jest niepoprawny!')); die($output); } if(strlen($user_Message)<5) //check emtpy message { $output = json_encode(array('type'=>'error', 'text' => 'Wiadomość jest za krótka.')); die($output); } //proceed with PHP email. $headers = "From: $_POST[mail] \r\nContent-type: text/html; charset=utf-8" . 'From: '.$user_Email.'' . "\r\n" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $sentMail = @mail($to_Email, $subject, $user_Message . "\r\n\n" .'-- '.$user_Name. "\r\n" .'-- '.$user_Email, $headers); if(!$sentMail) { $output = json_encode(array('type'=>'error', 'text' => 'Nie można wysłać wiadomości! Sprawdź konfigurację PHP poczty.')); die($output); }else{ $output = json_encode(array('type'=>'message', 'text' => 'Hey '.$user_Name .'! Dzięki za wiadomość. Będziemy w kontakcie.')); die($output); } } ?> |
|
|
12.08.2016, 08:48:14
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Skleiłeś nagłówek Content-type z From.
-------------------- |
|
|
12.08.2016, 09:09:09
Post
#12
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Dzięki, za zainteresowanie. Czy to powinno wyglądać tak?
Kod $headers = "Content-type: text/html; charset=utf-8" .
'From: '.$user_Email.'' . "\r\n" . 'From: '.$user_Email.'' . "\r\n" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); |
|
|
12.08.2016, 09:11:06
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Nie, bo nadal są sklejone.
Wydrukuj na ekran wartość zmiennej $headers, sprawdź podgląd źródła strony i zobaczysz. -------------------- |
|
|
12.08.2016, 09:25:17
Post
#14
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Kod $headers = "Content-type: text/html; charset=utf-8" . $headers .= 'From: '.$user_Email.'' . "\r\n" . 'From: '.$user_Email.'' . "\r\n" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); OK. zmienna headers odklejona, ale problem pozostał |
|
|
12.08.2016, 09:44:51
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A pokaż teraz jej wartość.
-------------------- |
|
|
12.08.2016, 13:15:06
Post
#16
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
ŝŚÄĹĹĂŝŚÄĹĹĂ -- kamil -- kamil@kamil.com
|
|
|
12.08.2016, 13:23:06
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Zawartość zmiennej $headers.
-------------------- |
|
|
12.08.2016, 13:34:42
Post
#18
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
Dzięki za pomoc i że mnie prowadzisz w tej mgle. Nie będę też ściemniać, że wiem o co chodzi, bo nie bardzo rozumiem co mam pokazać, lub jak to zrobić.
|
|
|
12.08.2016, 13:50:49
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Zobacz wynik w źródle strony. Przyjrzyj się znak po znaku. -------------------- |
|
|
17.08.2016, 07:36:07
Post
#20
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.06.2016 Ostrzeżenie: (0%) |
jesteś niesamowity, dzięki wielkie za wskazówki i że nie odpuściłeś. Natomiast nie jest aż tak pięknie, teraz przestała się wyświetlać informacja na stronie, że mail został wysłany. Tak na prawdę nic się nie dzieje. Po wciśnięciu przycisku wyślij, mail się wysyła, ale wszystkie dane wciąż są widoczne w oknach i brakuje informacji, że mail został wysłany.
|
|
|
Wersja Lo-Fi | Aktualny czas: 8.06.2024 - 22:39 |