Autor Zpráva
Argonisius
Profil
Dobrý den,
vytvořil jsem formulář a odesílací script. Ten includuju do single.php, aby se zobrazil pod každým příspěvkem. K odesílání dat e-mailem používám wp_mail(). Problém je v tom, že tato funkce mi odesílá e-mail bez diakritiky (místo ní divné znaky). Dá se to nějak opravit?

P.S. Zkoušel jsem použít funkci mail() v kombinaci s funkcemi FAQ sekce PHP, ale nefungovalo to.

Kód:

<?php
// kontrola dat
$eofchyby = array();

if(isset($_POST['eof-submit']))
{
$eofprodukt = $_POST['eof-produkt'];
$eofjmeno = htmlspecialchars($_POST['eof-jmeno']);
$eofulice = htmlspecialchars($_POST['eof-ulice']);
$eofmesto = htmlspecialchars($_POST['eof-mesto']);
$eofpsc = htmlspecialchars($_POST['eof-psc']);
$eoftelefon = htmlspecialchars($_POST['eof-telefon']);
$eofemail = htmlspecialchars($_POST['eof-email']);
$eoficq = htmlspecialchars($_POST['eof-icq']);
$eofpoznamky = nl2br(htmlspecialchars($_POST['eof-poznamky']));

// kontrola vyplnění jména
if ((strlen($eofjmeno) < 1) || (strlen($eofjmeno) > 50)) {
unset ($_POST['eof-jmeno']);
$eofchyby[] = 'Firma (jméno a příjmení)';
} 
// kontrola vyplnění ulice
if ((strlen($eofulice) < 1) || (strlen($eofulice) > 40)) {
unset ($_POST['eof-ulice']);
$eofchyby[] = 'Ulice';
} 
// kontrola vyplnění města
if ((strlen($eofmesto) < 1) || (strlen($eofmesto) > 40)) {
unset ($_POST['eof-mesto']);
$eofchyby[] = 'Město';
} 
// kontrola PSČ
if (preg_match('~^[0-9]{3} ?[0-9]{2}$~', $eofpsc) == false) {
unset ($_POST['eof-psc']);
$eofchyby[] = 'PSČ'; 
}
// kontrola telefonu
if (preg_match('~^(\+420)? ?\d{3} ?\d{3} ?\d{3}$~', $eoftelefon) == false) {
unset ($_POST['eof-telefon']);
$eofchyby[] = 'Telefon'; 
}
// kontrola emailu
if (is_email($eofemail) == false) 
{ 
$_POST['eof-email'] = '@';
$eofchyby[] = "Kontaktní e-mail";
}

// odeslani e-mailu
if (empty($eofchyby)) 
{
$eofkomu = "test@localhost.cz";
$eofpredmet = "Objednávka z e-shopu";
$eofzprava = "Produkt: ".$eofprodukt."\r\n";
$eofzprava .= "--------------------------------------------------\r\n";
$eofzprava .= "Firma (jméno a příjmení): ".$eofjmeno."\r\n";
$eofzprava .= "Ulice: ".$eofulice."\r\n";
$eofzprava .= "Město: ".$eofmesto."\r\n";
$eofzprava .= "PSČ: ".$eofpsc."\r\n";
$eofzprava .= "--------------------------------------------------\r\n";
$eofzprava .= "Telefon: ".$eoftelefon."\r\n";
$eofzprava .= "E-mail: ".$eofemail."\r\n";
$eofzprava .= "ICQ: ".$eoficq."\r\n";
$eofzprava .= "--------------------------------------------------\r\n";
$eofzprava .= "Poznámky: ".$eofpoznamky."\r\n";
$eofhlavicka = 'From: '.$eofjmeno.' <'.$eofemail.'>\r\n';

if (wp_mail($eofkomu, $eofpredmet, $eofzprava, $eofhlavicka))
{
$eofinfo = 'Vaše objednávka byla odeslána ke zpracování, děkujeme.';
}
else
{
$eofinfo = 'Bohužel nebylo možné vaši objednávku odeslat, zkuste to prosím později.';
} 
}
}
?>
<div id="eshop-order-form">
<h3>Objednávkový formulář</h3>
<form method="post" action=""> 
<p>
<?php 
if (!empty($eofchyby)) {
echo "<h4>Špatně vyplněná pole:</h4>";
echo "<ul>";
foreach ($eofchyby as $chyba) {
echo "<li>";
echo "<p class=\"chyba\"><strong>".$chyba."</strong></p>"; 
echo "</li>";
}
echo "</ul>";
} 
if (isset($eofinfo)) {
echo "<p><strong>".$eofinfo."</strong></p>";
}
?>
</p> 
<p>
<input name="eof-produkt" type="hidden" value="<?php the_title(); ?>" /> 
<label for="eof-jmeno">Firma (jméno a příjmení)* : </label>
<input name="eof-jmeno" size="50" maxlength="50" value="<?php echo $_POST['eof-jmeno']; ?>" />
</p>
<p> 
<label for="eof-ulice">Ulice* : </label>
<input name="eof-ulice" size="40" maxlength="40" value="<?php echo $_POST['eof-ulice']; ?>" />
</p> 
<p> 
<label for="eof-mesto">Město* : </label>
<input name="eof-mesto" size="40" maxlength="40" value="<?php echo $_POST['eof-mesto']; ?>" />
</p> 
<p> 
<label for="eof-psc">PSČ* : </label>
<input name="eof-psc" size="10" maxlength="10" value="<?php echo $_POST['eof-psc']; ?>" />
</p> 
<p> 
<label for="eof-telefon">Telefon* : </label>
<input name="eof-telefon" size="20" maxlength="20" value="<?php echo $_POST['eof-telefon']; ?>" />
</p>
<p> 
<label for="eof-email">Kontaktní e-mail* : </label>
<input name="eof-email" size="50" maxlength="50" value="<?php if (isset($_POST['eof-email']) == true) {echo $_POST['eof-email'];} else {echo '@';} ?>" />
</p> 
<p> 
<label for="eof-icq">ICQ : </label>
<input name="eof-icq" size="11" maxlength="11" value="<?php echo $_POST['eof-icq']; ?>" /> 
</p> 
<p> 
<label>Poznámky k objednávce : </label>
<textarea rows="5" cols="65" name="eof-poznamky"><?php echo $_POST['eof-poznamky']; ?></textarea>
</p> 
<p> 
<input type="submit" name="eof-submit" value=" Odeslat objednávku " />
</p> 
<p class="vysvetlivky"> 
Pole označená * jsou povinná!
</p> 
</form>
</div>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0