Autor | Zpráva | ||
---|---|---|---|
Sylar Profil * |
#1 · Zasláno: 15. 7. 2008, 17:47:09
Zdravím, potřeboval bych poradit s kodováním ve fci mail.
na webu mám něco podobného $headers = "Content-Type: text/plain; charset=utf-8"."\r\n"; $headers .= "From: Moje Stránky <info@stranka.cz>"; $sending = "Vaše registrace proběhla v pořádku."; mail ($_POST['email'], "Registrace do Moje stránky", $sending, $headers); Text kterej je v $sending je zobrazován v pořádku, ale to co je napsáno u From: Moje Stránky <info@stranka.cz> se mi u příchozího mailu zobrazí jako From: Moje Str?nky <info@stranka.cz> ... lze to nějak odstranit nebo ve From můžou být písmena pouze bez diakritiky ? Všem díky |
||
ShiraNai7 Profil |
#2 · Zasláno: 15. 7. 2008, 19:03:11
Na odstraneni diakritiky by se dala pouzit tato funkce:
function odstranitDiakritiku($vstup){ return str_replace( array("é", "ě", "É", "Ě", "ř", "Ř", "ť", "Ť", "ž", "Ž", "ú", "Ú", "ů", "Ů", "ü", "Ü", "í", "Í", "ó", "Ó", "á", "Á", "š", "Š", "ď", "Ď", "ý", "Ý", "č", "Č", "ň", "Ň", "ä", "Ä", "ĺ", "Ĺ", "ľ", "Ľ", "ŕ", "Ŕ", "ö", "Ö"), array("e", "e", "E", "E", "r", "R", "t", "T", "z", "Z", "u", "U", "u", "U", "u", "U", "i", "I", "o", "O", "a", "A", "s", "S", "d", "D", "y", "Y", "c", "C", "n", "N", "a", "A", "l", "L", "l", "L", "r", "R", "o", "O"), $vstup ); } Mozna by ale pomohlo pouzivani funkce mail stavene pro kodovani utf8 - mb_send_mail(). |
||
Alphard Profil |
#3 · Zasláno: 15. 7. 2008, 20:30:28
mně dobře slouží funkce uvedená a trochu okomentovaná zde http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=77 861#18
vycucni co ti pomůže, nebo to používej celé, jak chceš, snad to bude fungovat |
||
Sylar Profil * |
#4 · Zasláno: 15. 7. 2008, 21:56:41
ShiraNai7
podobnou fci používám také ale já se diakritiky nepotřebuji zbavit Tělo emailu se mi posílá v pořádku, jen hlavička tj. From: a Subject se mi po použití ěščřžýáíé mrší ... kouknu na tu fci ... díky Alphard oki díky kouknu ... jak píšu ShiraNai7ovi .. tělo se mi zobrazuje v pořádku jen from a subject mi blbnou ... vytáhnu si teda z toho co potřebuji ... díky moc |
||
Radim Hejhal Profil |
#5 · Zasláno: 16. 7. 2008, 15:03:47 · Upravil/a: Radim Hejhal
Bývalé chybné řešení, správné viz následující přízpěvek.
|
||
Radim Hejhal Profil |
#6 · Zasláno: 16. 7. 2008, 19:45:31 · Upravil/a: Radim Hejhal
Tak napodruhé - správná varianta s kódováním UTF-8. Tuto variantu jsem již předtím zkoušel ale asi mi nefungovala kvůli nějaké jiné chybě.
<?php $komu = "tobe@example.com"; $odesílatel = "Příliš žluťoučký kůň"; $adresaOdesílatele = "registrace@example.com"; $předmět = "Registrace (ěščřžýáíéďťňľúůó)"; $textMailu = "Dobrý den,\n". "děkuji za váš zájem.\n". "Pro dokončení registrace použijte následující odkaz.\n". "http://www.example.fuj?notosisnaddelateprcu1 \n\n". "Přeji hezký zbytek dne. (ěščřžýáíéďťňľúůó!)"; $hlavičky = "Content-type: text/plain; charset=utf-8 \n"; echo mail($komu, "=?UTF-8?B?".base64_encode($předmět)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesílatel)."?=<".$adresaOdesílatele."> \r\n".$hlavičky) ? "ODESLANO" : "CHYBA"; ?> Jednodušší, sjednocené kódování UTF-8. Hlavní chybou, kterou jsem v diskuzích postřehl, bylo umístění adresy odesílatele do kódované části (např. From: =?UTF-8?B?".base64_encode("Šílený Pažout <pazout@example.com>")."?=). Správné je tedy umístění za ni, viz kód. |
||
Časová prodleva: 16 let
|
0