Brak polskich znaków w formularzu kontaktowym ze strony


(ave20) #1

Witam

Tworzę stronę i pomagam sobie gotowymi skryptami. Pobrałem skrypt do formularza kontaktowego.
plik index.html posiada kodowanie UTF-8 (bez BOM) i tam polskie znaki działają. 
Plik php także jest zapisany w formacje UTF-8 (bez BOM), ale maile przychodzą z krzakami w miejscu
polskich znaków. 

Plik PHP: http://pastebin.com/9WKjjS1K

 

Do tego, są jeszcze skrypty *.js:
- bootstrap.min http://pastebin.com/qc6wtNLK

- contact-form-script http://pastebin.com/FjE8bDWc

- form-validator.min http://pastebin.com/EckBMTex

- jquery-min http://pastebin.com/UckdSr1H

 

Nie mam zielonego pojęcia dlaczego maile - tytuł, treść i "od kogo" przychodzą bez polskich znaków :confused:
Będę wdzięczny za pomoc.


(Fizyda) #2

Dodaj do headera (4 parametr funkcji mail) wiadomości:

Content-Type: text/plain; charset=UTF-8

 


(ave20) #3

Niestety w żadnym pliku nie widzę funkcji header. Gdzie mam więc wkleić dodatkowy kod?


(Fizyda) #4

Do pliku z php. Zamiast

$success = mail($EmailTo, $Subject, $Body, "From:".$email)

musisz mieć zmienną header do której będziesz dodawał sobie nagłówki (wersja najbardziej czytelna, możesz zostawić jak jest i dodać to co wyżej napisałem do 4 argumentu funkcji mail) - opis w dokumentacji: http://php.net/manual/en/function.mail.php, np w podobny sposób:

$success = mail($EmailTo, $Subject, $Body, $header)

A wyżej ustawiasz zmienną header o odpowiednie nagłówki maila

$header .= "From:".$email;

$header .= "Content-Type: text/plain; charset=UTF-8";

Nie wiem czy każdej kolejnej linii z kolejnymi nagłówkami maila nie powinieneś rozdzielać ‘\r\n’. Tak jest w dokumentacji, ale sprawdź czy działa i ewentualnie doczytaj.