Autor | Zpráva | ||
---|---|---|---|
JK Profil * |
#1 · Zasláno: 14. 11. 2010, 13:56:06
Potřeboval bych poradit s kódem na odesílání mailu ze stránky. Jakožto naprosto neznalý php jsem si našel tento zdroj:
http://wwwart.cz/email-formular Upravil jsem ho podle svých potřeb, fungoval správně, ale byl problém s kódováním češtiny. Ať jsem měnil jazykovou sadu jak chtěl, tak mi chodil "rozsypaný čaj". Pátral jsem tedy dále a našel tento kód ke konverzi kódování: http://www.kosek.cz/clanky/tipy/qa07.html Opět jsem jej přizpůsobil do stávajícího kódu, ale nějak mi to nechce chodit. Podmínka sice funguje, po odeslání se mi zobrazí oznámení o tom že mail byl odeslán nebo že je prázdné pole, ale ve skutečnosti se neodešle. Koukám do toho kódu už hodinu a na nic nemůžu přijít. Tady je tedy ten můj kód s chybou kterou já nevidím: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-language" content="cs"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>Result</title> </head> <body> <?php $IP = $REMOTE_ADDR; if (isset($_POST['text']) && ($_POST['text']) != '') { define("EMAIL","mail@mail.cz"); //tady mám samozřejmě správný mail// $PREDMET = "Vzkaz od navstevnika: ".$_POST['jmeno']; $HLAVICKA .= "MIME-Version: 1.0\n". "Content-Type: text/plain; charset=\"iso-8859-2\"\n". "Content-Transfer-Encoding: base64\n"; "From: ".$_POST['jmeno']." <".$_POST['email'].">\n"; "X-Priority: 4\n"; $ZPRAVA = "<b>Jmeno: ".$_POST['jmeno']." (IP: ".$IP.")\n"; $ZPRAVA .= "EMail: ".$_POST['email']."<br /></b>\n"; $ZPRAVA .= "Text vzkazu: ".$_POST['text']."<br /><br />\n\n"; $ZPRAVA .= "Zpráva byla odeslána dne ".date("j.n.Y")." v ".date("H:i")."."; $ZPRAVA = StrTr($ZPRAVA, "\x8A\x8D\x8E\x9A\x9D\x9E", "\xA9\xAB\xAE\xB9\xBB\xBE"); $ZPRAVA = Base64_Encode($ZPRAVA); mail($EMAIL, $PREDMET, $ZPRAVA, $HLAVICKA); echo "Váš vzkaz byl odeslán<br />"; } else {echo "Nelze odeslat prázdný mail";} ?> </body> </html> |
||
panther Profil |
#2 · Zasláno: 14. 11. 2010, 15:14:23
JK:
proměnná $EMAIL neexistuje, pravděpodobně sis ji spletl s kontantou stejného jména definovanou na ř. 15.
|
||
_Daffy Profil |
#3 · Zasláno: 14. 11. 2010, 15:25:12
tedy, místo mail($EMAIL , mail(EMAIL
|
||
JK Profil * |
#4 · Zasláno: 14. 11. 2010, 15:52:12
panther:
To je ono! Díky. Tušil jsem že to bude nějaká blbost, ale vzhledem k tomu že neznám php ani pravidla pro deklaraci proměnných, tak si sypu popel na hlavu jen tak na špičku prstu. Takže už to chodí a dokonce už je to i čitelné. Ještě jednou oběma díky. |
||
_Daffy Profil |
#5 · Zasláno: 14. 11. 2010, 15:53:39 · Upravil/a: _Daffy
jinak, doporučuji použít upravenou funkci sendMail ...místo mail(), jednoduché, přehledné a plně funkční :)
function sendMail($from, $to, $mail_subj, $mail_txt, $coding) { $headers = ''; if ($coding == 1){ $mail_txt = StrTr($mail_txt, "\x8A\x8D\x8E\x9A\x9D\x9E", "\xA9\xAB\xAE\xB9\xBB\xBE"); } $headers .= "From: $from\n". "Return-Path: $from\n". "MIME-Version: 1.0\n". "Content-Type: text/html; charset=\"iso-8859-2\"\n". "Content-Transfer-Encoding: 8bit"; $mail_subj = base64_encode ($mail_subj); $mail_subj = "=?iso-8859-2?B?$mail_subj?="; @Mail($to, $mail_subj, $mail_txt, @$headers); } |
||
Časová prodleva: 13 let
|
0