Autor | Zpráva | ||
---|---|---|---|
silverback Profil |
Dobrý den, jako každý mám problém s kódováním e-mailů - do outlooku a podobně mi chodí paznaky místo češtiny. Přečetl jsem si o kódování ve FAQ, ale nejsem moc zběhlí v PHP, proto prosím o radu - mám tento PHP formulář:
<? function vypisForm($jmeno,$prijmeni,$vek,$email) { echo " <form method=post action=\"mail.php\"> Jméno: <input name=jmeno value=\"".$jmeno."\"> Přijmení: <input name=prijmeni value=\"".$prijmeni."\"><br \> Věk: <input style=\"width:50px;\" name=vek value=\"".$vek."\"><br \> Váš e-mail: <input name=email value=\"".$email."\"><br \> <input type=submit value=Odeslat> </form> <br><br> "; } if (empty($_POST)) vypisForm("","","",""); else { if ($_POST["jmeno"]=="" || ereg("^ +$",$_POST["jmeno"])) { echo "Zadejte prosím své jméno."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["prijmeni"]=="" || ereg("^ +$",$_POST["prijmeni"])) { echo "Zadejte prosím své přijmení."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["vek"]=="" || ereg("^ +$",$_POST["vek"])) { echo "Zadejte prosím svůj věk."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["email"]=="" || ereg("^ +$",$_POST["email"])) { echo "Zadejte prosím svůj e-mail."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } else { if ($_SERVER["SERVER_ADDR"]!="127.0.0.1") $text_zpravy = "Jméno uživatele: ".$_POST["jmeno"]." ".$_POST["prijmeni"]." Věk: ".$_POST["vek"]."" ; mail ("sensorsoutez@gmail.com", $_POST["prijmeni"], $text_zpravy, "From:".$_POST["email"]); mail ($email, "ověření registrace", "Vážený pane/paní ".$_POST["jmeno"]." ".$_POST["prijmeni"].", Byl/a jste úspěšně registrován/a do soutěže Sensor.", "From:ultrasport@info.cz"); echo "E-mail byl úspěšně odeslán."; } } ?> A vůbec netuším jak na něj našroubovat tu funkci kódování: <?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); } /* ********************************************************************** ** */ ?> Kdyby byl někdo tak hodný a pomohl mi s tím, budu moc vděčný. |
||
silverback Profil |
#2 · Zasláno: 1. 10. 2009, 13:30:06
Takže jsem to opět pořešil sám ;-):
<? 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 vypisForm($jmeno,$prijmeni,$vek,$email) { echo " <form method=post action=\"mail.php\"> Jméno: <input name=jmeno value=\"".$jmeno."\"> Přijmení: <input name=prijmeni value=\"".$prijmeni."\"><br> Věk: <input style=\"width:50px;\" name=vek value=\"".$vek."\"> <br> Váš E-mail: <input name=email value=\"".$email."\"><br> <input type=submit value=Odeslat> </form> <br><br> "; } if (empty($_POST)) vypisForm("","","",""); else { if ($_POST["jmeno"]=="" || ereg("^ +$",$_POST["jmeno"])) { echo "Zadejte prosím své jméno."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["prijmeni"]=="" || ereg("^ +$",$_POST["prijmeni"])) { echo "Zadejte prosím své přijmení."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["vek"]=="" || ereg("^ +$",$_POST["vek"])) { echo "Zadejte prosím svůj věk."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } elseif ($_POST["email"]=="" || ereg("^ +$",$_POST["email"])) { echo "Zadejte prosím svůj e-mail."; vypisForm($_POST["jmeno"],$_POST["prijmeni"],$_POST["vek"],$_POST["email"]); } else { if ($_SERVER["SERVER_ADDR"]!="127.0.0.1") { //Mail ("vaseadresa@server.cz",$_POST["predmet"],$_POST["text"],"From:".$_POST["jmeno"]); $text = " Jméno uživatele: ".$_POST["jmeno"]." ".$_POST["prijmeni"]." Věk: ".$_POST["vek"].""; $text2 = "Děkujeme za registraci."; $mail = "sensorsoutez@gmail.com"; $subject = iconv("UTF-8", "iso-8859-2", $_POST["jmeno"]); $message = Base64_Encode(iconv("UTF-8", "iso-8859-2", $text)); $message2 = Base64_Encode(iconv("UTF-8", "iso-8859-2", $text2)); $headers .= "MIME-Version: 1.0\n". "Content-Type: text/plain; charset=\"iso-8859-2\"\n". "Content-Transfer-Encoding: base64\n". "From: ".$_POST["email"]; $headers2 .= "MIME-Version: 1.0\n". "Content-Type: text/plain; charset=\"iso-8859-2\"\n". "Content-Transfer-Encoding: base64\n". "From:ultrasport@info.cz"; mail($mail, $subject, $message, $headers); mail($email, "Sensor registrace", $message2, $headers2); } echo "E-mail byl úspěšně odeslán."; } } ?> |
||
Nox Profil |
#3 · Zasláno: 1. 10. 2009, 19:50:27
Supr, no...a v čem to bylo...lepší abys to sem napsal než aby každý musel texty kopírovat a pak použít nástroj na zvýraznění rozdílů...
|
||
nightfish Profil |
#4 · Zasláno: 1. 10. 2009, 20:14:59
„Supr, no...a v čem to bylo...lepší abys to sem napsal než aby každý musel texty kopírovat a pak použít nástroj na zvýraznění rozdílů...“
šlo o to zapasovat zadanou funkci do kódu na poslání e-mailu, takže opravdu netuším, co víc bys tu o tom chtěl napsat... |
||
silverback Profil |
#5 · Zasláno: 2. 10. 2009, 10:12:42
přesně tak - bylo to o tom, že jsem nevěděl kam kód zapasovat a jak pozměnit proměnné. Vpodstatě jde o celistvý kód, takže nevím co všechno vyznačovat :)
|
||
Časová prodleva: 15 let
|
0