Autor | Zpráva | ||
---|---|---|---|
Tomson Profil |
#1 · Zasláno: 24. 10. 2005, 17:28:34
zdravim všechny
mám jeden problém. Ve flashi mám vytvořený formulář, který se odesílá do mailu přes PHP. Když formulář vyplňuju, diakritika funguje. Jakmile mi to ale přijde do pošty, místo háčků a čárek jsou tam nesmysly. V sekci o ActionScriptu mi poradili, že musí být .php v kódování UTF-8, což bylo ještě horší než kódování ANSI, protože se mi rozházely i texty, který byly v tom PHP. V záhlaví toho . php mám: <meta http-equiv="cache-control" content="no-cache" /> zkoušel jsem i <META http-equiv="content-type" content="text/html;charset=iso-8859-2"> ale problém stále trvá. Nedokáže teď posoudit, jestli je to problém v napsání toho PHP, protože v PHP jsem absolutní amatér, anebo je to spíš konflikt mezi flash a php??? Díky za rady |
||
Hugo Profil |
#2 · Zasláno: 24. 10. 2005, 17:37:23
Do hlavičky mailu vlož:
Content-type: text/html; charset=iso-8859-2 příp: Content-type: text/plain; charset=iso-8859-2 podle formátu mailu. |
||
Tomson Profil |
#3 · Zasláno: 24. 10. 2005, 17:41:54
do hlavičky mailu???? Nerozumím, já to odesílám rovnou z toho flashe. A jestli jde o hlavičku toho php, tak tam jsem tohle měl, nebo ne?
|
||
Hugo Profil |
#4 · Zasláno: 24. 10. 2005, 17:46:00
Tomson
<meta http-equiv="cache-control" content="no-cache" /> toto je hlavička HTML souboru. V php (http) se hlavičky nastavují pomocí funkce Header(). Nevím jak se posílají maily z flashe, ale pokud je to řešené pomocí php, tak asi používáš funkci mail(). Takže zkus něco takového:
Víc informací najdeš zde http://php.ftp.cvut.cz/manual/en/function.mail.php |
||
Tomson Profil |
#5 · Zasláno: 24. 10. 2005, 18:18:51
já to tam mám takhle
<HTML><HEAD><TITLE></TITLE> <META http-equiv="content-type" content="text/html;charset=iso-8859-2"> <HEAD> <BODY> <? $datum = date( "d.M.Y H:i:s"); $info = "Informácie o odosielatelovi. Jazyk : $HTTP_ACCEPT_LANGUAGE IP: $REMOTE_ADDR Prehliadač: $HTTP_USER_AGENT Stránka: $HTTP_REFERER"; $data = "jmeno: ".$text."\n"."\n".' '.$info.' Dátum a čas poslania: '.$datum.' '; mail($email, $predmet, $data,"From: Tomáš Kunc <tomaskunc@centrum.cz>\r\n"); echo $data; ?> to je teda špatně?? |
||
Hugo Profil |
#6 · Zasláno: 25. 10. 2005, 05:24:11
$headers = 'From: Tomáš Kunc <tomaskunc@centrum.cz>' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n"; mail($email, $predmet, $data,$headers); |
||
Tomson Profil |
#7 · Zasláno: 25. 10. 2005, 08:07:27
jsem z toho jalovej. mám to teď takhle
<HTML><HEAD><TITLE></TITLE> <HEAD> <BODY> <? $headers = 'From: Tomáš Kunc <tomaskunc@centrum.cz>' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $datum = date( "d.M.Y H:i:s"); $info = "Informácie o odosielatelovi. Jazyk : $HTTP_ACCEPT_LANGUAGE IP: $REMOTE_ADDR Prehliadač: $HTTP_USER_AGENT Stránka: $HTTP_REFERER"; $data = "Předchozí spolupráce s Frans Maas: ".$combo1. "\n"."Název firmy: ".$text1. "\n"."Kontaktní osoba: ".$text2. "\n"."Telefon: ".$text3. "\n"."Fax: ".$text4. "\n"."E-mail: ".$text5. "\n"."\n"."Specifikace zboží: ".$text6. "\n"."Nebezpečné zboží: ".$combo2. "\n"."Místo odeslání: ".$text7. "\n"."Místo určení: ".$text8. "\n"."Počet kusů: ".$text9. "\n"."Celková hmotnost (kg): ".$text10. "\n"."Rozměry (d x š x v): ".$text11. "\n"."Stohovatelné: ".$combo3. "\n"."Datum/období: ".$text12. "\n"."\n"."Speciální požadavky: ".$text13. "\n"."\n"."Plátce přepravy: ".$text14. "\n"."Připojištění zásilky: ".$combo4.' '.$info.' Dátum a čas poslania: '.$datum.' '; mail($email, $predmet, $data,$headers); echo $data; ?> Teď mi ale vůbec nefunguje zalamování řádků, je to všechno jednolitej text a čeština je pořád v tahu. Já se z toho asi zvencnu ;o( |
||
Hugo Profil |
#8 · Zasláno: 25. 10. 2005, 08:24:05
Zalamování vyřešíš buď takto:
'Content-type: text/plain; charset=iso-8859-1' . "\r\n"; nebo takto: mail($email, $predmet, NL2BR($data),$headers); Ale nepoužívej oba způsoby najednou. Ad čeština V jakém kódování tu stránku píšeš?? I ten skript musí být napsán ve stejné znakové sadě jako mail (v tvém případě iso-8859-1). Ja posílám maily v UTF-8 a čeština mi funguje v pohodě. |
||
Tomson Profil |
#9 · Zasláno: 25. 10. 2005, 17:10:16
jo, tak teď už mám text zalomený správně. Asi je to se mnou těžký, ale jak jsem říkal PHP je pro mě španělská vesnice. Je to rozjetej vlak, kterej nemám čas dohonit, jestli se to vůbec dá.
ad čeština nerozumím, co myslíš tím mail. Já mám ten formulář zakomponovaný ve flashi a odtud odesílám odesílám data tam žádnou znakovou sadu neurčuju. V "index.html" mám v hlavičce kódování, cos mi napsal, mám to takhle: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>web</title> </head> no a pak už mám jen to php, který jsem udělal podle tebe. jinak v UTF-8 mám jak to php, tak ten index.html |
||
Hugo Profil |
#10 · Zasláno: 25. 10. 2005, 17:32:43
Tomson
Pokud to máš napsané v utf-8, tak proč dáváš do hlavičky kódování iso?? nacpi tam všude utf-8 a mělo by to jet. |
||
Tomson Profil |
#11 · Zasláno: 25. 10. 2005, 23:13:36
nevím,jak jsem řek, nerozumím tomu. Stáhnul jsem si nějaký příklady, který jsem si doupravil,ale je to taková metoda pokus omyl.
Tím tedy chceš říct, abych to z tý hlavičky vymazal úplně? Jak z toho html, tak z toho PHP??? |
||
Hugo Profil |
#12 · Zasláno: 26. 10. 2005, 05:06:25
Tomson
Pokud to máš napsané ve znakové sadě utf-8, tak to uprav na tento tvar $headers = 'From: Tomáš Kunc <tomaskunc@centrum.cz>' . "\r\n" . 'Content-type: text/html; charset=utf-8' . "\r\n"; Pokud tam chceš mít iso kódování, tak musíš změnit i znakovou sadu skriptu (pod win třeba pomocí PSpadu, pod linuxem např. pomocí iconv). |
||
Tomson Profil |
#13 · Zasláno: 26. 10. 2005, 08:36:06
ještě to vyzkouším, zatím díky
|
||
Tomson Profil |
#14 · Zasláno: 26. 10. 2005, 17:09:20
Ahoj Hugo, huráááá už mi ta čeština funguje, jsem šťastnej jako blecha. Jen mám ještě jeden problém s formátováním textu. U položky "Název firmy" se mi z text z dotahovaného formuláře odskočí pod, ačkoliv by se měl umístit vedle nárzvu firmy. Syntaxe je zadaná stejně jako u ostatních textů, kde je to bez problémů. Prosím ještě o pomoc s tímto. Script mám v této podobě:
HTML><HEAD><TITLE></TITLE> <HEAD> <BODY> <? $headers = 'From: Tomáš Kunc <tomaskunc@centrum.cz>' . "\r\n" . 'Content-type: text/html; charset=utf-8' . "\r\n"; $datum = date( "d.M.Y H:i:s"); $info = ""; $data = "Název firmy: ".$text1. "\n"."Kontaktní osoba: ".$text2. "\n"."Telefon: ".$text3. "\n"."Fax: ".$text4. "\n"."E-mail: ".$text5. "\n"."\n"."Specifikace zboží: ".$text6. "\n"."Nebezpečné zboží: ".$combo2. "\n"."Místo odeslání: ".$text7. "\n"."Místo určení: ".$text8. "\n"."Počet kusů: ".$text9. "\n"."Celková hmotnost (kg): ".$text10. "\n"."Rozměry (d x š x v): ".$text11. "\n"."Stohovatelné: ".$combo3. "\n"."Datum/období: ".$text12. "\n"."\n"."Speciální požadavky: ".$text13. "\n"."\n"."Plátce přepravy: ".$text14. "\n"."Připojištění zásilky: ".$combo4.' '.$info.' Datum a čas zaslání: '.$datum.' '; mail($email, $predmet, NL2BR($data),$headers); echo $data; ?> Díky moc |
||
Tomson Profil |
#15 · Zasláno: 26. 10. 2005, 21:23:35
Už jsem na to přišel, měl jsem jednu nesrovnalost v definici toho okna ve flashi. Všechno je ok. Moc děkuju, zachránil si mi kůži :o))
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0