Portál AbcLinuxu, 7. května 2025 07:18
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:
MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bitJinak encoding base64, a taky to do něj samozřejmě zakódovat. UTF-8 předpokládám automaticky, že používáš.
$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']).'?=';
Wau, funguje to perfektne, dokonce i v predmetu. Moc ti dekuji.
Zkusim podle toho porovnat, kde jsem teda delal chybu, abych priste vedel. :)
Aleš
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.