Autor | Zpráva | ||
---|---|---|---|
kuku Profil * |
#1 · Zasláno: 25. 5. 2010, 13:00:35
Dobrý den, chtěl bych poprosit někoho o radu jak mám vyřešit problém s diakritikou po odeslání s formulářem. Vím že na jakpsatweb je toho už spousty a mockrát se to již zde řešilo, ale já mám problém, že bohužel nejsem tak zdatný programátor a nevím jak to do svého kódu implementovat. Kdyby jsi zde našel někdo kdo by to dokázal popsat popřípadě nastínit jak na to, byl bych moc rád. Za každou radu předem moc díky a omluvte že opět řeším už vyřešené:
form <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="styl.css" /> <title>Odesílání emailu</title> </head> <body> <h1>Odesílání emailu</h1> <form action="posli.php" method="post"> <input class="tb2" name="email" size="25" value="Váš@mail"><br> <input class="tb2" name="predmet" size="25" value="Předmět"><br> <input class="tb2" name="spam" size="25"> = 1 + 1<br> <textarea class="textarea" name="zprava" rows="6" cols="55">Zpráva...</textarea><br> <input class="submit" type="submit" value="Odeslat"> </form> </body> </html> posli.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Odesílání emailu</title> </head> <body> <h1>Odesílání emailu</h1> <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") { Mail("info@studiofreyja.cz", $predmet, $zprava, "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>"; } ?> </body> </html> Tohle jsem našel že by mělo pomoci, ale nevím jak to implementovat do svého skriptu :-( <?php /* *************** diskuse.jakpsatweb.cz *** PHP FAQ ********************** */ 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, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); return mail ($to, $predmet, $zprava, $head); } /* ********************************************************************** ** */ |
||
ondra15 Profil |
#2 · Zasláno: 25. 5. 2010, 13:28:02
kuku:
Mail("info@studiofreyja.cz", $predmet, $zprava, "From: " . $email); Slovo Mail přepiš na cs_mail |
||
kuku Profil * |
#3 · Zasláno: 25. 5. 2010, 13:49:55
Moc děkuju, stidím se, že jsem na to nepřišel.
|
||
ondra15 Profil |
#4 · Zasláno: 25. 5. 2010, 13:58:33
kuku:
„Moc děkuju, stidím se,“. Nic se neděje, ještě zlepši trošku tu češtinu a bude úplně všechno jak má být.. |
||
Časová prodleva: 1 měsíc
|
|||
Sajga Profil |
#5 · Zasláno: 24. 6. 2010, 21:02:10
Dobrý večer, budu teď asi za trubku, ale jsem laik a trošku se mi z toho motá hlava. Mám úplně stejně vytvořený formulář jako kolega kuku, ale nevím si rady s tím, kam přesně vložit do posli.php tento kód:
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, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); return mail ($to, $predmet, $zprava, $head); } Předem moc děkuji za trpělivou odpověď, Zuzka. |
||
AM_ Profil |
#6 · Zasláno: 24. 6. 2010, 21:13:29
Sajga:
V podstatě kamkoliv, ideálně na začátek souboru. Každopádně mezi značky <?php ?> (tedy ne do HTML!) |
||
Sajga Profil |
#7 · Zasláno: 24. 6. 2010, 21:39:10
AM:
Udělala jsem to takto: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <meta http-equiv="Refresh" content="0;URL=kontakt.htm" /> <title>Odesílání emailu</title> </head> <body> <h1>Odesílání emailu</h1> <? 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, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); return mail ($to, $predmet, $zprava, $head); } $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") { cs_mail("zuzana.kohlerova@seznam.cz",$_POST["predmet"],$_POST["zprava"],"From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>"; } ?> </body> </html> Bohužel mi ale na e-mail vůbec nic nechodí ... |
||
AM_ Profil |
#8 · Zasláno: 24. 6. 2010, 21:40:41
pokud to vypíše, že byl e-mail odeslán, a nepřijde, tak bude chyba někde po cestě - špatně nastavený mail v PHP, chytly to spam filtry, e-mail se cestou ztratil nebo zasekl a teprve dorazí.
|
||
Sajga Profil |
#9 · Zasláno: 24. 6. 2010, 21:43:25
AM:
E-mail by měl být v pořádku (zuzana.kohlerova@seznam.cz), s tím ostatním asi nic nenadělám, že? |
||
Alphard Profil |
#10 · Zasláno: 24. 6. 2010, 21:43:57
cs_mail("zuzana.kohlerova@seznam.cz",$_POST["predmet"],$_POST["zprava"],"From: $email\n"); Která hláška se vypsala? Jinak viz [#8] AM. |
||
Sajga Profil |
#11 · Zasláno: 24. 6. 2010, 21:46:10
Alphard:
Napsalo mi to: Váš e-mail byl odeslán. E-mail ale nedorazil ... |
||
Alphard Profil |
#12 · Zasláno: 24. 6. 2010, 21:53:40
A když tu hlášku dáte do podmínek takhle?
if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") { if(cs_mail("zuzana.kohlerova@seznam.cz",$_POST["predmet"],$_POST["zprava"],"From: $email\n")) { echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>"; } |
||
Sajga Profil |
#13 · Zasláno: 24. 6. 2010, 21:57:52
Alphard:
Naprosto perfektní, moc děkuji za vytržený trn z paty!!! |
||
Davex Profil |
#14 · Zasláno: 24. 6. 2010, 21:59:43 · Upravil/a: Davex
|
||
Alphard Profil |
#15 · Zasláno: 24. 6. 2010, 22:02:33
[#14] Davex
Můžu. Dám to pořádku. |
||
Časová prodleva: 14 let
|
0