Autor Zpráva
TheRay
Profil
Zdravím prosím Vás potreboval by som odkázať na nejaký manuál alebo pomocť mám takýto script pre odosielanie dít z formulára. Email príde ako html ale potreboval by som vložiť do html ktorý sa odosielá pomocou mail funkcie premennú...viz. príklad.
PS: mal som mail v obyčajnom texte ked som ho zmenil na html mail už mi nezobrazuje diakritiku...prosím poradte...

<?php
$mail = "email@email.cz";
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$text = '
<html>
<head>
  <title>Požiadavka o cenovú kalkuláciu.</title>
</head>
<body>
<h1>Žiadosť o cenník</h1></center><br>
<p>Dobrý deň, návštevník našej stránky<a href="" target="">www.niečo.eu</a> Vás poľiadal o email. 
<p>
<p><strong>Údaje o zákazníkovi:</strong></p>
<table>
<tbody>
<tr>
<td width="100"><strong>Meno:</strong></td>
<td width="400">$meno</td></tr> // tu potrebujem premenú
<tr>
<td><strong>Priezvisko:</strong></td>
<td>Frlicka</td></tr>
<tr>
<td><strong>Email:</strong></td>
<td><a href="" target="_blank"></a></td></tr>
<tr>
<td><strong>Telefon:</strong></td>
<td>0908545423</td></tr>
<tr>
<td><strong>Mesto:</strong></td>
<td>Nitra</td></tr></tbody></table><br>
<table>
<tbody>
</body>
</html>

$kon = cs_mail ($mail, $predmet, $text, "From:$email\n");

if ($kon)
  echo "Formulár bol úspešne odoslaný.<br>";
 else
  echo "E-mail sa bohužial nepodarilo odoslať.<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, $text, $head = "")
       {  $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?=";
          $head .= "MIME-Version: 1.0\n";
          $head .= "Content-Type: text/html; charset=\"utf-8\"\n";
          $head .= "Content-Transfer-Encoding: base64\n";
          $text = base64_encode (autoUTF ($text));
          return mail ($to, $predmet, $text, $head); }

?>
Majkl578
Profil
TheRay:
potreboval by som odkázať na nejaký manuál
http://www.php.net/manual/en/language.types.string.php

$foo = 'x';
echo "a $foo b";//a x b
echo 'a $foo b'; //a $foo b
Alphard
Profil
Na řádku 35 nemáte ukončený řetězec:
</html>';

A proměnnou začleníne takhle:
<td width="400">'.$meno.'</td></tr>
TheRay
Profil
Alphard:
stým ukončeným retazcom som sa sekol ked som to sem kopíroval inak tam je...a stým začlenením premennej skúsim zatial dakujem...
TheRay
Profil
retazec v html funguje len stým jazykom ešte doladiť...dakujem
Alphard
Profil
TheRay:
len stým jazykom ešte doladiť
Myslíte chybnou diakritiku? V jaké části je chyba, v té šabloně nebo v doplněném jméně?
TheRay
Profil
Alphard:
TheRay:
if ($kon)
echo "Formulár bol úspešne odoslaný.<br>";
else
echo "E-mail sa bohužial nepodarilo odoslať.<br>";
?>
vypíše toto:
Formul�r bol �spe�ne odoslan�.
Alphard
Profil
Aha, já myslel, že je problém s diakritikou v mailu.
Na té stránce je nutné uvést kódování, ve kterém je napsaná.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Utf-8 upravte dle skutečnosti.
TheRay
Profil
Alphard:
Práveže to mám a následuje finkcia autoUTF ktorú som uviedol viššie.

<! DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sendemail Script</title>
</head>
<body>

<?php
$mail = "mail@mail.cz";
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$text = '';
?>
</body>
</html>
Alphard
Profil
TheRay:
Někde bude chybička. Funkce autoUTF() se stará pouze o email, na stránce nic nemění, v tom problém není.
TheRay
Profil
Alphard:
OK skúsim sa ešte popozerať či mi niekde nechýba lomítko alebo zátvorka či niečo podobné...zatial dakujem

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: