Autor Zpráva
Matthew Cook
Profil
Ahoj, mám problém už se to tu řešilo, ale i přesto mi to pořád nefunguje. Když odešlu tento formulář, příjde mi zpráva ve znakách. Prosím o radu kam co napsat, kde mám chybu. živá ukázka pod textem.

Děkuju ;)


             <form enctype="multipart/form-data" action="posli.php" method="post">
            <input name="email" class="email" size="25" value="Váš@mail">
            <br>
            <input name="predmet" class="predmet" size="25" value="Předmět">
            <br>
            <input name="spam" class="spam" size="25">
            <strong>= 1 + 1</strong><br>
            <textarea name="zprava" class="zprava" rows="6" cols="55">Zpráva...</textarea>
            <br>
            <input type="submit" value="Odeslat">
          </form>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>
<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];

$headers = "Od ".$_POST['email']. "\nContent-Type: text/html; charset=windows-1250\nContent-Transfer-Encoding: 8bit\r\n";
$headers = "Od ".$_POST['zprava']. "\nContent-Type: text/html; charset=windows-1250\nContent-Transfer-Encoding: 8bit\r\n";

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("muj@mail.cz", $predmet, $zprava, "From: " . $email);
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>";
} 
?>
</body>
</html>
Fisir
Profil
Reaguji na Matthewa Cooka:
Nevím sice, co myslíš tím „ve znacích“, ale tenhle řádek:
$headers = "Od ".$_POST['zprava']. "\nContent-Type: text/html; charset=windows-1250\nContent-Transfer-Encoding: 8bit\r\n";
je na 99 % špatně.
juriad
Profil
Fisir:
$headers nikde nepoužívá.

Co znamená „příjde mi zpráva ve znakách“, nehceš napsat příklad?

Přečti si:
Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky.

Případně použij nějakou knihovnu (PHPMailer), která to (a mnohem víc) již umí.
Matthew Cook
Profil
To jsem jen zkoušel co to udělá.

no přijde mi to takhle (Zpráva...)
Tomáš123
Profil
Matthew Cook:
>$headers = "Od ".$_POST['email']. "\nContent-Type: text/html; charset=windows-1250\nContent-Transfer-Encoding: 8bit\r\n";
>$headers = "Od ".$_POST['zprava']. "\nContent-Type: text/html; charset=windows-1250\nContent-Transfer-Encoding: 8bit\r\n";

Neviem či je to správne riešenie, ale v týchto dvoch riadkoch máš nastavené kódovanie windows-1250-skús to prepísať na UTF-8 a možno všetko pôjde ako má.
Matthew Cook
Profil
Už jsem to vyřešil takhle.

  $hlavicka = 'From:' . $_POST['email'];
            $hlavicka .= "\nMIME-Version: 1.0\n";
            $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";

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: