Autor | Zpráva | ||
---|---|---|---|
Alastor_Kopal Profil |
#1 · Zasláno: 1. 6. 2010, 22:46:47 · Upravil/a: Alastor_Kopal
$jmeno = $_POST['jmeno']; $email = $_POST['email']; $subject = "Registrace do amatérského dabování a nahrávání"; $text = 'Příliš žluťoučký kůň úpěl ďábelské ódy. '; mail($email,$subject,$text,$headers); Všude mám kódování UTF-8 ale do emailu mi přijde Přà liš ĹľluĹĄouÄŤkĂ˝ kĹŻĹ? pÄ›l ďábelskĂ Ăłdy. |
||
panther Profil |
#2 · Zasláno: 1. 6. 2010, 22:48:22
Alastor_Kopal:
co je v proměnné headers? |
||
Alastor_Kopal Profil |
#3 · Zasláno: 2. 6. 2010, 14:14:55
$headers = "From: $from"; |
||
panther Profil |
#4 · Zasláno: 2. 6. 2010, 14:16:54
Alastor_Kopal:
tak tam přidej ještě kódování. Jestli nevíš jak, projdi si FAQ této sekce, ten samý problém je tam zmíněn. |
||
blaaablaaa Profil |
#5 · Zasláno: 2. 6. 2010, 15:14:30
Pripadne pouzij tridu phpmailer, ktera hodne veci udela za tebe ;)
|
||
senior Profil |
#6 · Zasláno: 3. 6. 2010, 22:38:25
Alastor_Kopal:
Vlož si tento kus kódu do odosielacieho scriptu: function autoUTF($s) { // detect UTF-8 if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) return $s; // detect WINDOWS-1250 if (preg_match('#[\x7F-\x9F\xBC]#', $s)) return iconv('WINDOWS-1250', 'UTF-8', $s); // assume ISO-8859-2 return iconv('ISO-8859-2', 'UTF-8', $s); } function cs_mail ($to, $subject, $message, $head = "") { $subject = "=?utf-8?B?".base64_encode(autoUTF ($subject))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $message = base64_encode (autoUTF ($message)); return mail ($to, $subject, $message, $head); } |
||
pavuk Profil |
#7 · Zasláno: 4. 6. 2010, 06:52:17 · Upravil/a: pavuk
Zrovna řeším úplně stejný problém, ale protože php neovládám, musím jen tupě kopírovat. Na kód z [#6] jsem narazil ve "FAQ php DJPW" taky, ale nevím přesně kam ho vložit. Zkoušel jsem před odesílací skript, za něj, ale diakritika stále nic...
Kam přesně a jakým způsobem by se kód měl vložit? Odesílám tímto: <? $author = $_POST['author']; $email = $_POST['email']; $spam = $_POST['spam']; $text = $_POST['text']; if ($author!="" and $email!="" and $spam=="2" and $text!="") { Mail("email@můj.cz", $author, $text, "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat,</strong> pravděpodobně jste nevyplnili všechny údaje</p>"; } ?> A je v něm potřeba něco změnit podle mýho "odesílacího.php"? |
||
nightfish Profil |
#8 · Zasláno: 4. 6. 2010, 07:34:24
pavuk:
zásadní úprava spočívá v tom, že volání funkce mail ve svém kódu nahradíš voláním funkce cs_mail |
||
pavuk Profil |
#9 · Zasláno: 4. 6. 2010, 07:40:46
nightfish:
To je přesně ono, díky |
||
Časová prodleva: 14 let
|
0