Autor Zpráva
vladecek
Profil *
Mám na stránke kódovanie UTF-8. Pri odosielaní emailu cez emailový formulár (PHP) zblbne diakritika. V čom môže byť chyba?
Hugo
Profil
IMHO v nastavení kódování v hlavičce emailu.
vladecek
Profil *
díki, to som teda netušil :o)
Hugo
Profil
vladecek

Tak nastav správné a bude to fungovat.
vladecek
Profil *
ja som nemal žiadne nastavené :o(
Hugo
Profil
A když je nastavíš, tak to funguje nebo ne?
vladecek
Profil *
to zistím bohužiaľ až večer doma, teraz nie :o(
Luk@s
Profil *
Treba ti pomuze tohle

function posliEmail($from, $to, $subject, $text) {

$headers .= "MIME-Version: 1.0\n";
$headers.= "Content-Type: text/plain; charset=utf-8\n";
$headers .= "From: ".$from."\n";
$headers .= "Reply-To: ".$from."\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: PHP [version ".phpversion()."]\n";
@mail($to,$subject,$text,$headers);
}
vladecek
Profil *
to Hugo: nefunguje :o(
vladecek
Profil *
to Luc@s: neviem to aplikovať, mal som hotový PHP súbor :o(
vladecek
Profil *
ide to nejak urobiť pri include dať includovanému formuláru iné kódovanie ako má zvyšok stránky?
Hugo
Profil
vladecek

Hod sem tu část skriptu, která generuje mail (hlavně hlavičky). Musíš dát bacha, aby kódování skriptu odpovídalo kódování dokumentu. Příp. můžeš použít iconv() pro změnu kódování.
vladecek
Profil *
$f_prijemca = "spravnyemail@gmail.com";
$f_meno = $_POST["f_meno"];
$f_email = $_POST["f_email"];
$f_predmet = $_POST["f_predmet"];
$f_text = $_POST["f_text"];
function validate($_meno, $_email, $_text)
{
$chyba = array("", "", "");
if (strlen($_meno) < 3)
{
$chyba[0] = constant("CHYBA1");
}
if (!eregi("^[a-zA-Z_0-9]+([-+._][a-zA-Z_0-9]+)*@[a-zA-Z_0-9]{2,}([-.][a- zA-Z_0-9]{2,})*\.[a-zA-Z_0-9]{2,}([-.][a-zA-Z_0-9]{2,})*$", $_email))
{
$chyba[1] = constant("CHYBA2");
}
if (strlen($_text) < 3)
{
$chyba[2] = constant("CHYBA3");
}
return $chyba;
}
if ((isset($_POST["send"])) && ($_POST["send"] == "true"))
{
$chyba = array("","","");
$chyba = validate($f_meno, $f_email, $f_text);
if (($chyba[0] == "") && ($chyba[1] == "") && ($chyba[2] == ""))
{
//$m_meno = Base64_Encode($f_meno);
//$m_text = Base64_Encode($f_text);
$f_predmet = constant("HLASKA4") . ": " . $f_predmet;
//$m_predmet = Base64_Encode($f_predmet);
//mail($f_prijemca, $f_predmet, $f_text, "From: " . $f_meno . " <" . $f_email . ">\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=\"uft-8\"\r\nContent-Transfer-Encoding: base64\r\n")
if (mail($f_prijemca, $f_predmet, $f_text, "From: " . $f_meno . " <" . $f_email . ">\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=\"uft-8\"\r\n"))
{
echo "<br /><br />";
echo constant("HLASKA1");
}
else
...atd
vladecek
Profil *
čo je tam zle urobené?
Hugo
Profil
A je i ten skript ulo6en v utf-8?
vladecek
Profil *
je includovaný do stránky, ktorá má tiež to isté kódovanie utf-8
vladecek
Profil *
ešte raz sa opýtam, dá sa dať formuláru iné kódovanie, ako má stránka na ktorej je?
Hugo
Profil
vladecek

Ne, ale na změnu kódování dat můžeš použít funkci iconv()
vladecek
Profil *
nerozumiem, takže ide to nakoniec zmeniť cez iconv() ? či nie?
Hugo
Profil
http://cz.php.net/manual/en/ref.iconv.php
vladecek
Profil *
najhoršie na tom, že neviem ako to aplikovať vzhľadom na moje vedomosti o PHP :o(
vladecek
Profil *
ešte som skúsil zmeniť emailovú adresu, tak si predstavte: poslal som to na gmail, všetko v poriadku, krásna diakritika. Poslal som to opäť na szm.sk a opäť haky-baky, takže to je asi niečo iné na príčine. Určité servre asi majú iné kódovanie alebo čo?
vladecek
Profil *
aj na yahoo blbne diakritika. Čím to je, že gmail to zvládol a iné nie?
Hugo
Profil
vladecek

Tak to zkus poslat v jinem kodovani (napr. iso-8859 nebo win1250), mozna je problem na klientovi.
vladecek
Profil *
keď je to aj na azbuku :o(
roberta
Profil
vladecek
na diakritiku v maili zabudni. skoro každý mailový server má nastavené iné kódovanie, takže posielaj mail bez diakritiky
vladecek
Profil *
to sa Ti povie - neposielaj, keď to je formulár pre návštevníkov :o)
či myslíš, aby som ich nejakým skriptom odstraňoval?
roberta
Profil
vladecek
či myslíš, aby som ich nejakým skriptom odstraňoval?
ano, na internete je plno php skriptov na odtranovanie diakritiky
vladecek
Profil *
tak díki, skúsim to teda asi
Toto téma je uzamčeno. Odpověď nelze zaslat.