Autor Zpráva
beckcz
Profil
Dobry den,
omlouvam se, ze zakladam nove tema, ale prosel jsem snad vsechny diskuze na toto tema a nedobral jsem se reseni(resp. neumim ho dosadit do kodu). Mam formular pro posilani mailu ze stranek, avsak to prijde vzdy s rozhozenou diakritikou. Jsem zacatecnik a nevim si rady. Prosim tedy o pomoc. Je to kodovane v utf-8. Pokud se najde nekdo ochotny pomoc, predem dekuji za Vas cas.
zde je kod

<?php
$_EMAIL=isset($_REQUEST['email'])?$_REQUEST['email']:"";
$_MESSAGE=isset($_REQUEST['message'])?$_REQUEST['message']:"";
if($_EMAIL || $_MESSAGE)
{
    if(!$_EMAIL || !$_MESSAGE)
    {
        $_ERROR = 'Required  ';
            if (!$_EMAIL)    
            {
            $_ERROR = $_ERROR.'e-mail';
            if (!$_MESSAGE)  $_ERROR = $_ERROR.', message ';
            }
            else
            {
            if (!$_MESSAGE)  $_ERROR = $_ERROR.' message ';
            }
         $_ERROR = $_ERROR.' - not filled!';        
     }
     if( $_EMAIL && $_MESSAGE)
     {
        if(validMail($_EMAIL) != $_EMAIL)
        {
        $_ERROR =  'Enter a valid e-mail!';
        }
        else
     {
            mail("snoorky@seznam.cz", "Support", $message,
                 "From: '.$email.' \r\n"
                ."X-Mailer: PHP/" . phpversion());
            header("Location: index.php?lang=$_LANG&action=$_ACTION&act=send_ok");
        }
    }
}
 


?>

            <td width="660" height="40" align = "left" valign = "middle">
              <form id="emailme" method="POST" action="index.php?action=Support&act=main">
              <table width="664" border="0" class="TmTraining_zaglav">
                <tr align="left" >
                  <td>
                    <table class="TmTraining_zaglav">
                      <tr align="right" >
                        <td>
                          <textarea name="message" cols=70 rows=6 style="border: #000 1px solid;"><?=$_MESSAGE?></textarea>
                        </td>
                      </tr>
                      <tr align="right" >
                        <td>
                          Vaše emailová adresa:&nbsp; &nbsp; <input name="email" value="<?=$_EMAIL?>" type="text" size="30" style="font-size:20px; border:1px solid #000">
                        </td>
                      </tr>
                      <tr class="Header">
                        <td align="right">
                          <br>
                          <a href="javascript:void(0);" onclick="document.getElementById('emailme').submit()"><strong>Odeslat </strong><img class="pic_center" src="<?=ROOT_URL?>/images/button.png" width="26" height="19" border="0"></a>
                        </td>
                      </tr>
                    </table>
                  </td>
                </tr>
              </table>
              <div style="color:red"><?=$_ERROR;?></div>
              </form>
            </td>
          </tr>
        </table>
        
    </td>
  </tr>
</table>
Taps
Profil
beckcz:
podívej se do FAQ
beckcz
Profil
diky za opoved. Ver mi, ze jsem to zkousel, ale jak jsem psal jsem zacatecnik (sam bych se popsal jako : ultra mega total nooba). Proto jsem Vas chtel poprosit, jestli by jste to nekdo nemoh do tohoto kodu zakomponovat.

PS: kdyby nekoho zajimalo jak jsem se k tomu dostal, tak sem k tomu prisel jako slepej k houslim. Dostal jsem to za ukol, ani nevim proc.

Jsem lehce zoufalej, protoze moje znalosti php jsou minimalni, az nulove.
Taps
Profil
beckcz:
zkus níže uvedený zápis

 function zakoduj($text) //kódování emailu
 {
  return "=?utf-8?B?".base64_encode($text)."?=";
 }
$predmet="Předmět e-mailu";       
$headers = "MIME-Version: 1.0\n";
$headers.= "Content-Type: text/html; charset=\"utf-8\"\n";
$headers.= "Content-Transfer-Encoding: base64\n";
$headers.= "From:Test test<test@seznam.cz>\n";
$headers.= "X-Mailer: PHP\n"; // mailový klient
 $predmet = zakoduj($predmet);
 $zprava= Base64_Encode($telo);
mail("adresa@seznam.cz", $predmet, $zprava, $headers);
beckcz
Profil
Diky moc za odpoved. Zkusil jsem to. Ten kod ted vypada nejak takhle:
<?php
$_EMAIL=isset($_REQUEST['email'])?$_REQUEST['email']:"";
$_MESSAGE=isset($_REQUEST['message'])?$_REQUEST['message']:"";
if($_EMAIL || $_MESSAGE)
{
    if(!$_EMAIL || !$_MESSAGE)
    {
        $_ERROR = 'Required  ';
            if (!$_EMAIL)    
            {
            $_ERROR = $_ERROR.'e-mail';
            if (!$_MESSAGE)  $_ERROR = $_ERROR.', message ';
            }
            else
            {
            if (!$_MESSAGE)  $_ERROR = $_ERROR.' message ';
            }
         $_ERROR = $_ERROR.' - not filled!';        
     }
     if( $_EMAIL && $_MESSAGE)
     {
        
     {
function zakoduj($_MESSAGE) //kódování emailu
 {
return "=?utf-8?B?".base64_encode($_MESSAGE)."?=";
 }
       
$headers = "MIME-Version: 1.0\n";
$headers.= "Content-Type: text/html; charset=\"utf-8\"\n";
$headers.= "Content-Transfer-Encoding: base64\n";
$headers.= "From:$_EMAIL\n";
$headers.= "X-Mailer: PHP\n"; // mailový klient
 
 $_MESSAGE= Base64_Encode($_MESSAGE);
mail("testmail2@test.cz",'support', $_MESSAGE, $headers);
        }
    }
}
?>

bohuzel nefunguje. Kdyz poslu zpravu "test ěščřžýáíé" tak prijde "test ��������"
�=ctverecek

Diky moc za tvuj cas.

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
beckcz:
Verze uvedená ve FAQ se zatím snad vždy ukázala být funkční.
Použití je naprosto jednoduché, místo volání fce mail() se zavolá cs_mail(), to musí zvládnou i začátečník.
"X-Mailer: PHP/" . phpversion() buď do hlaviček vůbec nedávejte, nebo za to dejte konec řádku.

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