Autor | Zpráva | ||
---|---|---|---|
Ladik Profil * |
#1 · Zasláno: 28. 10. 2009, 13:17:42
Zdravíčko,
mám problém s kódováním poslaných údajů z objednávkového formuláře na e-mail.. :( V php se moc neorientuju, ale myslím, že to bude nějaká drobnost. Takže problém je v tom, že když si chce někdo objednat produkt pomocí mého objednávkového formuláře a v jeho jméně se objevují české znaky s háčky, tak mi na mail přijde místo jména Šebesta ?ebesta.. Vůbec nevim jak to vyladit. Prosím poraďte. Kód funguje tak, že do formulářé vypíše zákazník kontaktní údaje, které se pak objeví jako proměnné v samotném tělu mailové zprávy: $jmeno_prijmeni=$_POST['jmeno_prijmeni']; $ulice_cp=$_POST['ulice_cp']; $mesto=$_POST['mesto']; $psc=$_POST['psc']; $mail=$_POST['mail']; $telefon=$_POST['telefon']; $poznamka=$_POST['poznamka']; $to = "mujmail@seznam.cz"; $subject = "Objednávka"; $message = " Jméno: $jmeno_prijmeni Ulice: $ulice_cp Město: $mesto PSČ: $psc E-mail: $mail Telefon: $telefon Poznamka: $poznamka "; $headers = "from: $mail\n"; $headers .= "X-mailer: phpWebmail \n"; if( mail($to, $subject, $message, $headers) ) { echo "Požadavek se zpracovává."; } else { echo "Požadavek nebyl zpracován, zkuste nas kontaktovat na telefonním čísle uvedeném v záložce Home"; } } |
||
AM_ Profil |
#2 · Zasláno: 28. 10. 2009, 13:32:57
první možnost - viz FAQ - problémy s emaily
druhá možnost - pro odeslání použít např. PHPMailer - promakaná třída pro pohodlné odeslání mailu s mnoha možnostmi a ošetřenými věcmi jako kódování a další |
||
nightfish Profil |
#3 · Zasláno: 28. 10. 2009, 13:35:00 · Upravil/a: nightfish
toto téma je velmi dobře popsáno ve FAQ
EDIT: pozděěě |
||
Ladik Profil * |
#4 · Zasláno: 28. 10. 2009, 13:43:57
wow to je rychlost :)
díky moc prostuduju to |
||
Ladik Profil * |
#5 · Zasláno: 28. 10. 2009, 14:32:21
Tak mám stále někde chyby.. :(
bohužel nejsem znalý v php, tak vás někoho prosím o polopatické vysvětlení. Zkusil jsem to dát do zdrojového kódu takhle, ale výsledek je stále stejný.. :( díky za rady <?php 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, $headers = "") { $subject = "=?utf-8?B?".base64_encode(autoUTF ($subject))."?="; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain; charset=\"UTF-8\"\n"; $headers .= "Content-Transfer-Encoding: base64\n"; $message = base64_encode (autoUTF ($message)); return mail ($to, $subject, $message, $headers); } if(empty($_POST['jmeno_prijmeni']) || empty($_POST['ulice_cp']) || empty($_POST['mesto']) || empty($_POST['psc']) || empty($_POST['mail']) || empty($_POST['heslo_potrvd2'])) { echo"Bohužel nebyly zadány požadované údaje."; } else{ if($_POST['heslo_potrvd'] == $_POST['heslo_potrvd2']) { $jmeno_prijmeni=$_POST['jmeno_prijmeni']; $ulice_cp=$_POST['ulice_cp']; $mesto=$_POST['mesto']; $psc=$_POST['psc']; $mail=$_POST['mail']; $telefon=$_POST['telefon']; $chlorella_extrakt_pilulky=$_POST['chlorella_extrakt_pilulky']; $poznamka=$_POST['poznamka']; $to = "mujmail@seznam.cz"; $subject = "Objednávka"; $message = " Jméno: $jmeno_prijmeni Ulice: $ulice_cp Mìsto: $mesto PSÈ: $psc E-mail: $mail Telefon: $telefon Clorella extrakt - pilulky: $chlorella_extrakt_pilulky Poznamka: $poznamka "; $headers = "from: $mail \n"; $headers .= "X-mailer: phpWebmail \n"; if( mail($to, $subject, $message, $headers) ) { echo "Požadavek se zpracovává."; } else { echo "Požadavek nebyl zpracován, zkuste nas kontaktovat na telefonním èísle uvedeném v záložce Home"; } } else { echo "Chybné heslo."; } } ?> |
||
Alphard Profil |
#6 · Zasláno: 28. 10. 2009, 15:35:15
Na 65. řádku musíte místo funkce mail() použít cs_mail().
|
||
Ladik Profil * |
#7 · Zasláno: 28. 10. 2009, 19:03:00
I love you man :)
díky moc |
||
Časová prodleva: 1 rok
|
|||
rybarada Profil |
#8 · Zasláno: 8. 4. 2011, 18:34:31
Jáké je pro tento soubor kódování?
|
||
Alphard Profil |
#9 · Zasláno: 8. 4. 2011, 20:09:35
[#8] rybarada
Script se snaží odhadnout kódování vstupních dat a odeslat mail správně v jakémkoliv případě (v rozmných mezích). Obecně bych preferoval utf-8. Pokud je všude použito utf, ztrácí funkce autoUTF() smysl a lze ji vynechat. Ve FAQ je tento script aktualizovaný. Především jsou pro ukončení řádků použity sekvence \r\n .
|
||
Časová prodleva: 15 let
|
0