Vytvoříme vám e-shop a přivedeme zákazníky. Vyzkoušejte si nás zdarma
Zobrazují se odpovědi 1 až 6 z 6

Problém s diakritikou v emailu

  1. Na stránkách používám kontaktní formulář a jak už to tak bývá, tak se vyskytl problém s českou diakritikou - klasický problém se znakovou sadou, se kterým si nevím rady, nejsem přeborník přes PHP.
    Používám toto:
    Kód:
    <?php
    
    $to = "muj@email.cz";
    
    $name = trim($_POST['name']);
    $adress = trim($_POST['adress']);
    $email = trim($_POST['email']);
    $phone = trim($_POST['phone']);
    $message = str_replace(chr(10), "<br>", $_POST['message']);
    
    $body = "<html><head><title>Contact Form Email</title></head><body><br>";
    $body .= "Jméno: <b>" . $name . "</b><br>";
    $body .= "Adresa: <b>" . $adress . "</b><br>";
    $body .= "Email: <b>" . $email . "</b><br>";
    $body .= "Telefon: <b>" . $phone . "</b><br><br>";
    $body .= "Zpráva:<br><hr><br><b>" . $message . "</b><br>";
    $body .= "<br></body></html>";
    	
    $subject = 'Email od ' . $name;
    $header = "From: $to\n" . "MIME-Version: 1.0\n" . "Content-type: text/html; charset=utf-8\n";
    
    mail($to, $subject, $body, $header);
    
    ?>
    Jak to napravit? Mám zato, že je chyba je na řádku kde je MIME-Version.
    (skript byl součástí webové šablony z ThemeForest.net)

    Předem díky za cenné rady!

  2. Co se právě děje na Webtrhu?
  3. jojo Hodnocení: 7 (100%) jojo je zatím velká neznámá
    2
    Ahoj,

    před nějakou dobrou jsem si z jakpsatweb stáhl skript na odesílání emailu. S diakritikou jsem nikdy problém neměl. Přikládám zdrojový kód. Snad ti to pomůže:

    Kód:
    <?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 .= "\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); }
    								
    								?>
    								
    								<?
    								
    								$predmet = $_POST['predmet']; //input box ve strance s name=predmet
    								$email = $_POST['email'];//input box ve strance s name=email
    								$spam = $_POST['spam'];//input box ve strance s name=spam
    								$zprava = $_POST['zprava'];//input box ve strance s name=zprava
    								
    								if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
    								{
    								cs_mail("email@email.cz", $predmet, $zprava, "From: " . $email);//email na ktery se odesle zprava
    								echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";								
    								}
    								else
    								{
    								echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
    								}
    								?>
    Omlouvám se za odsazení zdrojového kódu. Opravim to jakmile to půjde.
    Naposledy upravil jojo : 31.03.2012 v 10:23

  4. sobik Hodnocení: 28 (97%) sobik je na dobré cestě
    3
    Když jsi soubor upravil, neuložil jsi jej pouze do jiného kódování, než jaké na něm bylo původně? Spousta jednoduchých editorů (počínaje poznámkovým blokem) pod Windows ukládá do CP 1250 (Windows 1250), mělo by však zde být jisto jistě UTF8. Lehce můžeš překontrolovat například pomocí PSPadu.

  5. krylm Hodnocení: 26 (100%) krylm bude brzy slavný/á
    4
    Používá stránka, odkud se odesílá kontaktní formulář taky UTF-8 kódování?

  6. Stránka používá taky UTF-8, ale nenapadlo mě překontrolovat kódování textového editoru - používám Notepad++ kde je kódování nastaveno na ANSI. Zkouším uložit do UTF-8 a dám vědět jak to dopadlo!

    ---------- Příspěvek doplněn 31.03.2012 v 12:51 ----------

    Vyřešeno. Problém byl opravdu v uložení php souboru do jiného kódování. Stačilo uložit jako UTF-8. Díky za pomoc!

  7. Prosímvás... používejte PHPMailer... pak tu nebudete resit tak strasne prasarny a kraviny

Hostujeme u Server powered by TELE3