| 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: 16 let
|
|||
0