Autor | Zpráva | ||
---|---|---|---|
jaroushit Profil * |
#1 · Zasláno: 25. 10. 2009, 14:53:18
Zdravím, potřeboval bych poradit.. Mám následující php soubor pro odesílání e-mailů z databáze, ale u poslaných mailů nefunguje diakritika(->zobrazení nečitelných znaků). Nevím co s tím (jsem začátečník) ..
<? $host="sql.pipni.cz"; $uziv="hbgang.com"; $heslo="*****"; $spoj = mysql_connect($host,$uziv,$heslo); if(!$spoj) echo "outputs=error"; $vys = mysql_db_query ("hbgang_com", "SELECT email FROM databaze"); if(!$vys) echo "outputs=error"; while($e = mysql_fetch_array($vys)): $subject = $HTTP_POST_VARS['mail_predmet']; $message = $HTTP_POST_VARS['mail_zprava']."ěščřžýáíé"; $to = $e["email"]; mail($to, $subject, $message, "From: H.B.Gang NEWSLETTER <newsletter@hbgang.com>"); endwhile; echo "outputs=sent"; ?> |
||
jaroushit Profil * |
#2 · Zasláno: 25. 10. 2009, 14:58:57
„odesílání e-mailů z databáze“
ještě upřesním: v mysql mám databáti e-mailů, na které píšu zprávy z formuláře.. |
||
denCo Profil |
#3 · Zasláno: 25. 10. 2009, 15:22:29 · Upravil/a: denCo
pošli ten mail s touto hlavičkou
$hlavicka = "From: H.B.Gang NEWSLETTER <newsletter@hbgang.com>"; $hlavicka .= "Content-Type: text/plain; charset=utf-8\r\n"; mail($to, $subject, $message, $hlavicka); |
||
jaroushit Profil * |
#4 · Zasláno: 25. 10. 2009, 15:42:09
Funguje to tak napůl...(pouze ve zprávě a jen v tom $HTTP_POST_VARS['mail_zprava'] - to vložené "ěščřžýáíé" se nezobrazuje. Jinak předmět je pořád nečitelný). Mám tam teď tohle:
<? $host="sql.pipni.cz"; $uziv="hbgang.com"; $heslo="*****"; $spoj = mysql_connect($host,$uziv,$heslo); if(!$spoj) echo "outputs=error"; $vys = mysql_db_query ("hbgang_com", "SELECT email FROM databaze"); if(!$vys) echo "outputs=error"; while($e = mysql_fetch_array($vys)): $hlavicka = "Content-Type: text/plain; charset=utf-8\r\n"; $subject = $HTTP_POST_VARS['mail_predmet']; $message = $HTTP_POST_VARS['mail_zprava']."ěščřžýáíé"; $to = $e["email"]; mail($to, $subject, $message, $hlavicka."From: H.B.Gang NEWSLETTER <newsletter@hbgang.com>"); endwhile; echo "outputs=sent"; ?> |
||
jaroushit Profil * |
#5 · Zasláno: 25. 10. 2009, 15:50:54
(To tvoje mi nějak vůbec ani neodešle ten mail)
|
||
jaroushit Profil * |
#6 · Zasláno: 25. 10. 2009, 15:54:45
Jo, tak jsem zjistil že ten můj druhej zápis to odesílá všechno v pohodě kromě teda toho předmětu.. :(
|
||
king26 Profil |
#7 · Zasláno: 25. 10. 2009, 15:56:57
|
||
jaroushit Profil * |
#8 · Zasláno: 25. 10. 2009, 16:29:16
Udělal jsem to podle toho ale mám pořád stejný problém:( Teď skript vypadá takto:
<? 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 = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $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); } $host="sql.pipni.cz"; $uziv="hbgang.com"; $heslo="*****"; $spoj = mysql_connect($host,$uziv,$heslo); if(!$spoj) echo "outputs=error"; $vys = mysql_db_query ("hbgang_com", "SELECT email FROM databaze"); if(!$vys) echo "outputs=error"; while($e = mysql_fetch_array($vys)): $subject = $HTTP_POST_VARS['mail_predmet']."-ěščřžýáíé"; $message = $HTTP_POST_VARS['mail_zprava']."-ěščřžýáíé"; $to = $e["email"]; $kon = cs_mail ($to, $subject, $message, "From: H.B.Gang NEWSLETTER <newsletter@hbgang.com>"); if ($kon) echo "outputs=sent"; else echo "outputs=error"; endwhile; echo "outputs=sent"; ?> |
||
Alphard Profil |
#9 · Zasláno: 25. 10. 2009, 16:36:58
jaroushit:
Máte stránku, ze které berete data, a tento script ve stejném kódování? Je poškozená až ta část -ěščřžýáíé nebo už i to předchozí? |
||
jaroushit Profil * |
#10 · Zasláno: 25. 10. 2009, 16:41:43
Mělo by být vše v UTF-8.. Poškozené je obojí. Data beru z flash formuláře - nemůže být problém v tom?
|
||
Alphard Profil |
#11 · Zasláno: 25. 10. 2009, 16:45:35
jaroushit:
Mělo by stačit, že je kódování konzistentní. Zkoušel jste ten text přímo vypsat? Zkuste to takhle, jestli je obojí v utf, mělo by to jít. function cs_mail ($to, $subject, $message, $head = "") { $predmet = "=?utf-8?B?".base64_encode($predmet)."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $message = base64_encode ($message); return mail ($to, $subject, $message, $head); } |
||
jaroushit Profil * |
#12 · Zasláno: 25. 10. 2009, 16:58:45
Nic se tím nezměnilo. Vypsat text jsem nezkoušel (popravdě řečeno ani nevím jak se to dělá)..
Kód teď vypadá takto: <? 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 = "") { $predmet = "=?utf-8?B?".base64_encode($predmet)."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $message = base64_encode ($message); return mail ($to, $subject, $message, $head); } $host="sql.pipni.cz"; $uziv="hbgang.com"; $heslo="*****"; $spoj = mysql_connect($host,$uziv,$heslo); if(!$spoj) echo "outputs=error"; $vys = mysql_db_query ("hbgang_com", "SELECT email FROM databaze"); if(!$vys) echo "outputs=error"; while($e = mysql_fetch_array($vys)): $subject = $HTTP_POST_VARS['mail_predmet']."-ěščřžýáíé"; $message = $HTTP_POST_VARS['mail_zprava']."-ěščřžýáíé"; $to = $e["email"]; $kon = cs_mail ($to, $subject, $message, "From: H.B.Gang NEWSLETTER <newsletter@hbgang.com>"); if ($kon) echo "outputs=sent"; else echo "outputs=error"; endwhile; echo "outputs=sent"; ?> |
||
jaroushit Profil * |
#13 · Zasláno: 25. 10. 2009, 17:02:42
POVEDLO SE! Všimnul jsem si chyby v tom skriptu, co jste mi poslal a opravil ji a ono to funguje!:) místo $predmet jsem dal $subject ... Díky moc!;)
|
||
Časová prodleva: 15 let
|
0