Portál AbcLinuxu, 7. května 2025 07:18

Dotaz: Kodovani textu zpravy v PHP formulari

25.9.2013 10:02 keeralesh
Kodovani textu zpravy v PHP formulari
Přečteno: 363×
Odpovědět | Admin

Zdravim, prostudoval jsem uz nekolik rad, ale zadna mi zatim nepomohla. Rozhodl jsem se pozadat o pomoc tady. Mam jednoduchy webovy formular, v kterem bych potreboval nastavit kodovani tak, aby v textu odeslaneho formulare, resp. v jeho obsahu, fungovala diakritika.

Prikladam kod formulare

if( isset($_POST['name']) )
{
$to = '';
$subject = $_POST['subject'];
$message = $_POST['message'] . "\n\n" . 'Regards, ' . $_POST['name'] . '.';
$headers = 'From: ' . $_POST['name'] . "\r\n" . 'Reply-To: ' . $_POST['email'] . "\r\n" . 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
Diky moc za radu. Aleš

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.9.2013 10:10 potato
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Odpovědět | | Sbalit | Link | Blokovat | Admin
Věříš-li, že to všichni klienti zvládnou tak
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Jinak encoding base64, a taky to do něj samozřejmě zakódovat.

UTF-8 předpokládám automaticky, že používáš.
25.9.2013 10:32 keeralesh
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Neco podobneho jsem uz nasel, ale mam problem uz se samotnou implementaci toho zapisu. Mohl bys mi to prosim poslat komplet v tom mnou zaslanem kodu?

Zkousel jsem to dat do hlavicky, ale asi jsem to spatne zapsal. V PHP se neorientuji. K UTF-8, ano, to pouzivam.

Diky moc, Aleš
25.9.2013 11:18 chrono
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Nie je problém to, že odosielaný email neobsahuje potrebné hlavičky, takže použité kódovanie sa len háda?

Každopádne je oveľa rozumnejšie na odosielanie emailov použiť hotovú knižnicu (napr. PHPMailer), ktorá sa o pridanie potrebných hlavičiek postará a tak bude menej miest, ktoré bude potrebné potom skontrolovať.
Řešení 1× (keeralesh (tazatel))
25.9.2013 16:15 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Neodzkoušeno s minimálním zásahem (jen jsem ty hlavičky odřádkoval, pro lepší čtení):
$message  = base64_encode($_POST['message'] . "\n\n" . 'Regards, ' . $_POST['name'] . '.');
$headers  = 'From: ' . $_POST['name'] . "\r\n";
$headers .= 'Reply-To: ' . $_POST['email'] . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Transfer-Encoding: base64' . "\r\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8';


Ale subject stále nebude hezky česky, pokud má být, tak
$subject = '=?utf-8?B?'.base64_encode($_POST['subject']).'?=';
Snad obvyklejší, ale v minulosti například Vodafone nepodporované:
$subject = '=?utf-8?Q?'.quoted_printable_encode($_POST['subject']).'?=';
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
26.9.2013 09:34 keeralesh
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari

Wau, funguje to perfektne, dokonce i v predmetu. Moc ti dekuji.

Zkusim podle toho porovnat, kde jsem teda delal chybu, abych priste vedel. :)

 

Aleš

Josef Kufner avatar 26.9.2013 10:39 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Tak, teď už víš proč, takže to můžeš smazat a použít PHPMailer. Jsem si celkem jist, že jinak narazíš i na nějaké další komplikace.
Hello world ! Segmentation fault (core dumped)
26.9.2013 11:28 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Kodovani textu zpravy v PHP formulari
Ono to ale má některé nedostatky a i některá úskalí (např. lze modifikovat hlavičky odesílatelem). Takže, i když jsem neměl v minulosti nervy obcházet nedostatky PHPMailer-a a používal jsem výhradně svůj, tak člověku neznalému bych určitě doporučil, stejně jako Josef Kufner, PHPMailer (člověk znalý si to zváží sám ;-) ).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.