Autor Zpráva
Tomson
Profil
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
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
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
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:


<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" .


mail($to, $subject, $message, $headers);
?>


Víc informací najdeš zde
http://php.ftp.cvut.cz/manual/en/function.mail.php
Tomson
Profil
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
$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
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
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
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
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
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
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
ještě to vyzkouším, zatím díky
Tomson
Profil
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
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))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0