| Autor | Zpráva | ||
|---|---|---|---|
| Tomáš Fuxa Profil |
#1 · Zasláno: 23. 5. 2014, 13:53:16
Mám php script na odeslání formuláře na mail, ale po odeslání se v mailu nezobrazují písmena s diakritikou.
Jak využiju kódování UTF-8 v php pro správnos funkce? Děkuji moc! Příklad mého scriptu: <?php $to = "3mail@centrum.cz"; $extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n"; $subject = "Vzkaz od ".$_POST['jmeno'].""; $mess = "Jméno: ".$_POST['jmeno']."\nEmail: ".$_POST['email']."\nTelefon: ".$_POST['telefon']."\nZpráva:\n".$_POST['zprava'].""; mail ($to, $subject, $mess, $extra); ?> <html><head> <meta http-equiv="refresh" content="0; url=kontakt.php"> <title>Přesměrování...</title> </head><body></body></html> |
||
| juriad Profil |
#2 · Zasláno: 23. 5. 2014, 13:54:31
|
||
|
Časová prodleva: 5 dní
|
|||
| Tomáš Fuxa Profil |
#3 · Zasláno: 28. 5. 2014, 11:46:55
Zkouše jsem vše, podle návodů, ale stále mi z formuláře chodí emaily, kde se veškerá písmena obsahující diakritiku nezobrazují.
|
||
| jenikkozak Profil |
#4 · Zasláno: 28. 5. 2014, 13:14:54
Jaký skript používáš nyní?
|
||
| Tomáš Fuxa Profil |
#5 · Zasláno: 29. 5. 2014, 10:05:26 · Upravil/a: Moderátor (editace znemožněna) 29. 5. 2014, 11:31:47
Nyní používám
<?php $to = 'fixis2@centrum.cz'; $subject = 'Vzkaz od '.$_POST['jmeno']; $message = "Jméno: ".$_POST['jmeno']."\nEmail: ".$_POST['email']."\nTelefon: ".$_POST['telefon']."\nZpráva:\n".$_POST['zprava']; //$message = htmlentities($message); $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n". 'From: '.$_POST['email'] . "\r\n" . 'Reply-To: '.$_POST['email'] . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> <html><head> <meta http-equiv="refresh" content="0; url=kontakt.php"> <title>Přesměrování...</title> |
||
| juriad Profil |
#6 · Zasláno: 29. 5. 2014, 10:16:02
A proč nepoužiješ přesně to, co jsem odkázal? To je ověřený postup:
function cs_mail($to, $predmet, $zprava, $head = "")
{
$predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
$head .= "MIME-Version: 1.0".PHP_EOL;
$head .= "Content-Type: text/plain; charset=\"utf-8\"".PHP_EOL;
$head .= "Content-Transfer-Encoding: base64".PHP_EOL;
$zprava = wordwrap(base64_encode(autoUTF($zprava)), 78, PHP_EOL, true);
return mail($to, $predmet, $zprava, $head);
}Pokud máš stránku v UTF-8, nemusíš řešit funkci autoUTF a předat rovnou zprávu funkci base64_encode. |
||
| Tomáš Fuxa Profil |
#7 · Zasláno: 29. 5. 2014, 10:32:41 · Upravil/a: Tomáš Fuxa
Tak jsem to odzkoušel a chodí to stále stejně. Pokud je to ověřený script, je možné, že by mohla být chyba zobrazení v emailové schránce? Konkrétně tady, používám centrum email, ale jen zkušebně, na odzkoušení, než to bude v provozu.
Tak je to přesně, jak jsem psal, problém je v emailu na centrumu. Nastavil jsem jako doručovací adresu Gmail a už to běží. |
||
|
Časová prodleva: 12 let
|
|||
0