Autor Zpráva
JK
Profil *
Potřeboval bych poradit s kódem na odesílání mailu ze stránky. Jakožto naprosto neznalý php jsem si našel tento zdroj:
http://wwwart.cz/email-formular
Upravil jsem ho podle svých potřeb, fungoval správně, ale byl problém s kódováním češtiny. Ať jsem měnil jazykovou sadu jak chtěl, tak mi chodil "rozsypaný čaj".
Pátral jsem tedy dále a našel tento kód ke konverzi kódování:
http://www.kosek.cz/clanky/tipy/qa07.html
Opět jsem jej přizpůsobil do stávajícího kódu, ale nějak mi to nechce chodit. Podmínka sice funguje, po odeslání se mi zobrazí oznámení o tom že mail byl odeslán nebo že je prázdné pole, ale ve skutečnosti se neodešle. Koukám do toho kódu už hodinu a na nic nemůžu přijít.
Tady je tedy ten můj kód s chybou kterou já nevidím:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Result</title>
</head>

<body>

<?php
$IP = $REMOTE_ADDR;
if (isset($_POST['text']) && ($_POST['text']) != '') {

define("EMAIL","mail@mail.cz"); //tady mám samozřejmě správný mail//
$PREDMET = "Vzkaz od navstevnika: ".$_POST['jmeno'];
$HLAVICKA .= "MIME-Version: 1.0\n".
              "Content-Type: text/plain; charset=\"iso-8859-2\"\n".
              "Content-Transfer-Encoding: base64\n";
	   "From: ".$_POST['jmeno']." <".$_POST['email'].">\n";
	   "X-Priority: 4\n";
$ZPRAVA = "<b>Jmeno: ".$_POST['jmeno']." (IP: ".$IP.")\n";
$ZPRAVA .= "EMail: ".$_POST['email']."<br /></b>\n";
$ZPRAVA .= "Text vzkazu: ".$_POST['text']."<br /><br />\n\n";
$ZPRAVA .= "Zpráva byla odeslána dne ".date("j.n.Y")." v ".date("H:i").".";
$ZPRAVA = StrTr($ZPRAVA, 
  				"\x8A\x8D\x8E\x9A\x9D\x9E", 
  				"\xA9\xAB\xAE\xB9\xBB\xBE");
$ZPRAVA = Base64_Encode($ZPRAVA);
mail($EMAIL, $PREDMET, $ZPRAVA, $HLAVICKA);
echo "Váš vzkaz byl odeslán<br />";
} else {echo "Nelze odeslat prázdný mail";}
?>

</body>
</html>
panther
Profil
JK:
proměnná $EMAIL neexistuje, pravděpodobně sis ji spletl s kontantou stejného jména definovanou na ř. 15.
_Daffy
Profil
tedy, místo mail($EMAIL , mail(EMAIL
JK
Profil *
panther:
To je ono! Díky.
Tušil jsem že to bude nějaká blbost, ale vzhledem k tomu že neznám php ani pravidla pro deklaraci proměnných, tak si sypu popel na hlavu jen tak na špičku prstu. Takže už to chodí a dokonce už je to i čitelné.
Ještě jednou oběma díky.
_Daffy
Profil
jinak, doporučuji použít upravenou funkci sendMail ...místo mail(), jednoduché, přehledné a plně funkční :)

  function sendMail($from, $to, $mail_subj, $mail_txt, $coding)
  {
   $headers = '';
   if ($coding == 1){
      $mail_txt = StrTr($mail_txt, "\x8A\x8D\x8E\x9A\x9D\x9E", "\xA9\xAB\xAE\xB9\xBB\xBE");
   }
   $headers .= "From: $from\n".
         "Return-Path: $from\n".
         "MIME-Version: 1.0\n".
         "Content-Type: text/html; charset=\"iso-8859-2\"\n".
          "Content-Transfer-Encoding: 8bit";
     $mail_subj = base64_encode ($mail_subj);
     $mail_subj = "=?iso-8859-2?B?$mail_subj?=";
               
         @Mail($to, $mail_subj, $mail_txt, @$headers);

  }

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:

0