Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Polskie znaki w nagłówkach (funkcja mail)
apollos
post 14.10.2012, 15:21:45
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.07.2012

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


Witam,
Mam pytanie odnośnie nagłówków, które można załączyć do funkcji mail. Kod jest następujący:
  1. $headers = 'From: '.$name.' <'.$email.'>' . "\r\n";
  2. $headers .= 'Reply-To: '.$name.' <'.$email.'>' . "\r\n";

Tak więc powinno być w porządku, zaś problem jest następujący: gdy użytkownik w formularzu poda w polu "name" imię i nazwisko bez polskich znaków, wówczas wszystko działa poprawnie. Kłopot pojawia się, gdy w nazwie są polskie znaki, np. Andrzej Przepiórka. Wtedy na mój adres e-mail, którego adresatem jest samo "Andrzej", zaś nazwisko obcina. Jak to rozwiązać? Czy powinno tu być wskazane kodowanie utf-8, a może zrobić dwa osobne pola na imię i nazwisko, zaś potem je połączyć w nagłówku?
Go to the top of the page
+Quote Post
Szymciosek
post 14.10.2012, 15:26:04
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Kodowanie to tak jakby podstawa, spróbuj ustawić na utf-8
Go to the top of the page
+Quote Post
apollos
post 14.10.2012, 15:39:12
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.07.2012

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


Czyli na samym początku powinienem jeszcze dodać:
  1. $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";

?

Ten post edytował apollos 14.10.2012, 15:39:32
Go to the top of the page
+Quote Post
Szymciosek
post 14.10.2012, 15:51:37
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


http://php.net/manual/en/function.mail.php

Tutaj masz jak użyć headers w wiadomości Example #4. Podobnie do tego co dałeś.
Go to the top of the page
+Quote Post
apollos
post 14.10.2012, 20:31:18
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.07.2012

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


Dziwna sprawa. Jak imię ma jakiś ogonek, tak nazwisko już się "nie łapie", czyli na to wygląda, że kończy się po wyrazie z polskim znakiem.
Go to the top of the page
+Quote Post
tab
post 14.10.2012, 20:35:59
Post #6





Grupa: Zarejestrowani
Postów: 75
Pomógł: 20
Dołączył: 8.10.2012

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


a ogólnie znaki w skrypcie ci poprawnie koduje? mam nadzieje ze nie kodzisz w windowsowym notatniku biggrin.gif
jesli dobrze koduje to pewnie jakis problem z smtp, jakiego uzywasz?
Go to the top of the page
+Quote Post
apollos
post 14.10.2012, 20:45:46
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.07.2012

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


Cytat(tab @ 14.10.2012, 21:35:59 ) *
a ogólnie znaki w skrypcie ci poprawnie koduje? mam nadzieje ze nie kodzisz w windowsowym notatniku biggrin.gif
jesli dobrze koduje to pewnie jakis problem z smtp, jakiego uzywasz?
Tak, poprawnie. W notepad++. Maila wysyła na utworzone przekierowanie w OVH, które trafia na Gmaila.
Go to the top of the page
+Quote Post
bostaf
post 14.10.2012, 20:56:04
Post #8





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(apollos @ 14.10.2012, 21:31:18 ) *
Dziwna sprawa. Jak imię ma jakiś ogonek, tak nazwisko już się "nie łapie", czyli na to wygląda, że kończy się po wyrazie z polskim znakiem.

Nie lubię dawać podpowiedzi nie sprawdziwszy ich wcześniej, ale nie jestem w stanie szybko tego sprawdzić.

Dziwne jest to, że ucina całe nazwisko, a nie na przykład do znaku, albo wywalając jakiś błąd.
Spróbuj wstawić cały $name w cudzysłów:
  1. $headers .= 'Reply-To: "' . $name . '" <' . $email . '>' . "\r\n";

Daj znać, czy to coś pomogło.

Przy okazji i dla pewności: w Notepadzie masz ustawione kodowanie w UTF bez BOM, tak? Domyślnie on ma ANSI.
Go to the top of the page
+Quote Post
apollos
post 14.10.2012, 21:44:26
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.07.2012

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


UTF-8 bez BOM miałem ustawione. Twoje rozwiązanie zadziałało, a dokładniej te cudzysłowy. Dzięki za pomoc!
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: 15.06.2025 - 07:34