Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Brak polskich znaków w formularzu kontaktowym ze strony
ave20
post 26.09.2016, 17:43:04
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.05.2010

Ostrzeżenie: (0%)
-----


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 :/
Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
trueblue
post 26.09.2016, 18:31:34
Post #2





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Temat: Funkcja mail a Polskie znaki


--------------------
Go to the top of the page
+Quote Post
ave20
post 26.09.2016, 21:11:56
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.05.2010

Ostrzeżenie: (0%)
-----


Niestety, ale w moim kodzie nie ma funkcji $header, więc nie mam gdzie dokleić kodowania...
Go to the top of the page
+Quote Post
trueblue
post 26.09.2016, 21:22:23
Post #4





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


$header to nie funkcja.

Nagłówki dołączasz, przyjrzyj się linii 54.
I manual: http://php.net/manual/en/function.mail.php


--------------------
Go to the top of the page
+Quote Post
ave20
post 26.09.2016, 21:32:06
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.05.2010

Ostrzeżenie: (0%)
-----


  1. $headerFrom = "xmlns=\"http://www.w3c.org/1999/xhtml\" xml:lang=\"pl\" lang=\"pl\"" . "\r\n";
  2. $headerFrom .= "MIME-Version: 1.0" . "\r\n";
  3. $headerFrom .= "Content-type: text/html; charset=utf-8" . "\r\n";
  4. $headerFrom .= "FROM: <" . $email . ">\r\n";
  5.  
  6. $success = mail($EmailTo, $Subject, $Body, $headerFrom);

Ale nie działa - teraz maile w ogóle się nie wysyłają...
Go to the top of the page
+Quote Post
viking
post 27.09.2016, 07:55:56
Post #6





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A ta pierwsza linia to niby po co?


--------------------
Go to the top of the page
+Quote Post
Baku12345
post 27.09.2016, 22:11:15
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 23.04.2011

Ostrzeżenie: (0%)
-----


Zasada jest taka, że żeby wszystko wszędzie dobrze się wyświetlało to musisz zrobić 4 rzeczy:

1. W pliku HTML w nagłówku ustawić odpowiednie kodowanie np. tak
  1. <meta charset="UTF-8">
  2. </head>


2. W pliku PHP ustawić odpowiednie kodowanie dla pobieranych znaków z bazy np. tak
  1. $pdo = new PDO('mysql:host=localhost; port=3306; dbname=materialy-wspolne.pl', 'root', '');
  2.  
  3. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  4. $pdo->exec("SET NAMES 'utf8'");

to jest przykład z użyciem pdo, najważniejsza dla Ciebie jest ta ostatnia linia od exec wstaw to zaraz po połączeniu z bazą

3. W bazie danych ustawić odpowiednie kodowanie znaków np. UTF8_general_ci

4. wszystkie pliki zapisywać w tym samym kodowaniu czyli np utf8

Ten post edytował Baku12345 27.09.2016, 22:18:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2025 - 02:05