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
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
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
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
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 :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: