Autor | Zpráva | ||
---|---|---|---|
petrnemec Profil * |
#1 · Zasláno: 29. 9. 2009, 07:21:45
Zdar pánové,
věřím tomu, že mi dokážete pomoci... už sedm hodin procházím všechny český a světový fora a nejsem schopnej dohledat řešení, kterýmu bych porozuměl a dal ho dohromady. Ve flashi mám vytvořený (formulář, z nějž odesílám data do php skriptu, ktrý následně odešle e-mail. Výstup z flashe utf-8, kodovani php taky utf-8 a ve výsledku mi dojde rozsipanej čaj: ĹĄÄ�Ĺ�ŞýåĂĂŠ= ĹĄÄ�Ĺ�ŞýåĂĂŠ= Ä�Ĺ�ŞýåĂĂŠ= Ä�Ĺ�ŞýåĂĂŠ (rozkryptovaný text by obsahoval diakritické znaky č. abecedy). Kod ve flashi: contact_name.text = contact_mesto.text = contact_ulice.text = contact_telefon.text = contact_email.text = contact_www.text = contact_gps.text = contact_cena.text = message_status.text = ""; send_button.addEventListener(MouseEvent.CLICK, submit); reset_button.addEventListener(MouseEvent.CLICK, reset); var timer:Timer; var var_load:URLLoader = new URLLoader; var URL_request:URLRequest = new URLRequest( "send_email.php" ); URL_request.method = URLRequestMethod.POST; function submit(e:MouseEvent):void { if( contact_name.text == "" || contact_mesto.text == "" || contact_ulice.text == "" || contact_telefon.text == "" || contact_email.text == "" || contact_www.text == "" || contact_gps.text == "" || contact_cena.text == "" ) { message_status.text = "Všechny pole musí být vyplněna."; } else if( !validate_email(contact_email.text) ) { message_status.text = "Prosím zadejte korektní informace."; } else { message_status.text = "odesílám..."; var email_data:String = "name=" + contact_name.text + "&mesto=" + contact_mesto.text + "&ulice=" + contact_ulice.text + "&telefon=" + contact_telefon.text + "&email=" + contact_email.text + "&www=" + contact_www.text + "&gps=" + contact_gps.text + "&cena=" + contact_cena.text; var URL_vars:URLVariables = new URLVariables(email_data); URL_vars.dataFormat = URLLoaderDataFormat.TEXT; URL_request.data = URL_vars; var_load.load( URL_request ); var_load.addEventListener(Event.COMPLETE, receive_response ); } } function reset(e:MouseEvent):void { contact_name.text = contact_mesto.text = contact_ulice.text = contact_telefon.text = contact_email.text = contact_www.text = contact_gps.text = contact_cena.text = message_status.text = ""; } function validate_email(s:String):Boolean { var p:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; var r:Object = p.exec(s); if( r == null ) { return false; } return true; } function receive_response(e:Event):void { var loader:URLLoader = URLLoader(e.target); var email_status = new URLVariables(loader.data).success; if( email_status == "yes" ) { message_status.text = "Krok 1/2 proběhl v pořádku."; timer = new Timer(500); timer.addEventListener(TimerEvent.TIMER, on_timer); timer.start(); } else { message_status.text = "Chyba! Odesílání se nezdařilo."; } } function on_timer(te:TimerEvent):void { if( timer.currentCount >= 10 ) { contact_name.text = contact_mesto.text = contact_ulice.text = contact_telefon.text = contact_email.text = contact_www.text = contact_gps.text = contact_cena.text = message_status.text = ""; timer.removeEventListener(TimerEvent.TIMER, on_timer); } } Kod v php: <?php $contact_name = $_POST['name']; $contact_mesto = $_POST['mesto']; $contact_ulice = $_POST['ulice']; $contact_telefon = $_POST['telefon']; $contact_email = $_POST['email']; $contact_www = $_POST['www']; $contact_gps = $_POST['gps']; $contact_cena = $_POST['cena']; if( $contact_name == true ) { $sender = $contact_email; $receiver = "info@suzaplay.cz"; $client_ip = $_SERVER['REMOTE_ADDR']; $email_body = "Ze serveru byla odeslána objednávka. \n\nData: \n\n$contact_name \n\n$contact_mesto \n\n$contact_ulice \n\n$contact_telefon \n\n$contact_email \n\n$contact_www \n\n$contact_gps \n\n$contact_cena \n\nIP: $client_ip \n\nZkontrolujte server - k záznamu budou pravdepodobne nahrány fotografie!"; $extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion(); if( mail( $receiver, "Ze serveru byla odeslána objednávka - $contact_name", $email_body, $extra ) ) { echo "success=yes"; } else { echo "success=no"; } } ?> Vážně bych neotravoval, ale nejsem schpnej najít pro tupany srozumitelnej návod jak to vyřešit... z flashe to podle mě vystupuje dobře, protože když změním index (ve kterém je flash) a php soubor na kodovani iso-8859-2 příjde mi hlavička mailu s diakritikou (hlavička taktéž pochází z inputu flashe) ale zbytek mailu opět rozsypanej... Prosím o pomoc s nějakým rozumným řešením... prohledal jsem skutečně vše, takže odkazy typu "v tohle vláknu to je..." mi asi nepomůžou... potřeboval bych jednoduchej srozumitelnej návod... Díky moc |
||
AM_ Profil |
#2 · Zasláno: 29. 9. 2009, 07:35:05
Problém zřejmě není mezi PHP a flashem, ale v samotném mail()u, kterému nikde kódování nezadáváš. V hlavičce mailu musí být příslušný "content-type:text/plain;charset=utf-8" a předmět mailu musíš převést např. funkcí mb_encode_mimeheader; nebo použít pohodlný způsob posílání mailů v podobě třídy PHPMailer.
|
||
petrnemec Profil * |
#3 · Zasláno: 29. 9. 2009, 07:49:18
Přiznám se, že kdybych našel nějaké pohodlné řešení (PHPMailer) tak už bych ho dávno využil... jenže.... díky tomu, že se potřebuji vrátit do flashe a přebírat input z něj bych to asi dohromady nedal... to je moje omezenost (s php nejsem až takovej kamarád)... hlavičk (Header) už jsem taky vyplněnou měl a stále to ničemu nepomohlo... Pokud by se Vám někomu chtělo mě tu hlavičku správně předvyplnit a hodit ji sem "zlíbal" bych Vám ruce... Díky
|
||
XMireczech Profil * |
#4 · Zasláno: 29. 9. 2009, 09:15:26
hlavicka z kterou mi mail v UTF-8 chodi spravne:
$headers = "From: Contractor.cz <contractor@contractor.cz>\n" . "X-Sender: contractor@contractor.cz\n" . "X-Priority: 1\n" . 'Reply-To: ' . 'contractor@contractor.cz' . "\n" . 'Return-Path: <' . 'contractor@contractor.cz' . "\n" . 'Content-Type: text/plain; charset="utf-8"' . "\n" . "Content-Transfer-Encoding: 8bit\n"; |
||
Časová prodleva: 15 let
|
0