Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Diakritika v emailu -PHP

Ahoj programátoři.

Pomohl by mi prosím vás někdo vyřešit problém s diakritikou v php? Používám funkci mail() a když odešlu email, tak mi příjde bez písmenek s háčkama a čárkama. Nevím co s tím mám dělat. A ještě jedna věc. Email mi nedojde s adresou odesílatele. Zobrazí mi to tam email jakoby hostingu. jde to nějak změnit? Přikládám kód. Děkuji.

<?php

$to = "....";
$subject = "$subject";

$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$subject = $_POST["subject"];

$body = <<<EMAIL
$message


EMAIL;

if($_POST){
	if($name == "" || $email == ""|| $message == "" || $subject == ""){
		$feedback = "Vyplň všechna políčka";
	}
	else{
		mail($to, $subject, $body);
		$feedback = "Email byl odeslán";
	}
}

?>
Předmět Autor Datum
• Pouzil jsi alespon "UTF-8"?, v databazy mozna i "htmlspecialchars"
CoCoChanel 06.10.2015 17:06
CoCoChanel
V PHP nějak moc neumím, takže ne..nevím kam a jak to tam dát. nový
programlike 06.10.2015 17:14
programlike
Skús si pozrieť http://diskuse.jakpsatweb.cz/.sandbox/?action=vthr ead&forum=9&topic=2111#diakritika… nový
martin94 06.10.2015 17:21
martin94
Skús tam pridať: $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;chars… nový
pme 06.10.2015 17:30
pme
Teď když pošlu email a bude tam $headers .= 'From: <webmaster@example.com>' . "\r\n"; , tak mi tam… nový
programlike 06.10.2015 17:42
programlike
No asi nepíšu, že? chybí mi tam ty závorky nový
programlike 06.10.2015 17:43
programlike
No i tak to dělá pořád to samé :( nový
programlike 06.10.2015 17:44
programlike
Má prosím vás ještě někdo nějakou radu ohledně té diakritiky? teď mi to místo písmen píše nějaké zna… nový
programlike 07.10.2015 18:30
programlike
Našel jsem tenhle kód, podle kterého by to mělo fungovat, jenže jevím jak ho upravit do toho mojeho.… poslední
programlike 07.10.2015 18:33
programlike

Teď když pošlu email a bude tam

$headers .= 'From: <webmaster@example.com>' . "\r\n";

, tak mi tam příjde adresa webmaster@example.com...ale když tam místo toho dám, ať to vycucne ze vstupu od uživatele, tak mi tam příjde $email@ofca.vn.cz ... jestli to teda dobře píšu

$headers .= 'From: $email' . "\r\n";

Jinak háčky čárky to pořád nebere. Ty písmena to úplně vynechá :/

Našel jsem tenhle kód, podle kterého by to mělo fungovat, jenže jevím jak ho upravit do toho mojeho.

<?php
$mail = "bazos88@seznam.cz";
$predmet = "Email z webu SDH";
$email = $_POST['email'];
$spam = $_POST['spam'];
$zprava = 
" \r\nJméno a příjmení: " .$_POST['jmenoprijmeni'].
" \r\nE-mail:     " .$_POST['email'].
" \r\n\nZpráva: " .$_POST['zprava']; 
if ($email!="" and $zprava!="" )
{
$kon = cs_mail ($mail, $predmet, $zprava, "From: $email\n");
if ($kon)  
  
header("HTTP/1.1 301 Moved Permanently");
header("Location: www.sdhbecva.cz/index.php?option=com_content&view=article&id=17");
header("Connection: close");
}  
 else
  echo "E-mail se bohužel nepodařilo odeslat.<br>";
?>

<?php

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));
          $stav = mail ($to, $predmet, $zprava, $head);
          return $stav ?  TRUE : FALSE;  }
?>

Zpět do poradny Odpovědět na původní otázku Nahoru