Autor Zpráva
tomas_vlcek
Profil
Dobrý den, mám zde následující kód . Potřebuji poradit jak to udělat, abych v mailu, který mi příjde viděl kromě zprávy také jméno odesilatele.

<?php

    /*
     *           __          __                __            
     *      ____/ /__ _   __/ /_  ____  ____  / /__ _________
     *     / __  / _ \ | / / __ \/ __ \/ __ \/ //_// ___/_  /
     *    / /_/ /  __/ |/ / /_/ / /_/ / /_/ / ,< _/ /__  / /_
     *    \__,_/\___/|___/_.___/\____/\____/_/|_(_)___/ /___/
     *                                                   
     *                                                           
     *      TUTORIÁLY  <>  DISKUZE  <>  KOMUNITA  <>  SOFTWARE
     * 
     *    Tento zdrojový kód je součástí tutoriálů na programátorské 
     *    sociální síti WWW.DEVBOOK.CZ    
     *    
     *    Kód můžete upravovat jak chcete, jen zmiňte odkaz 
     *    na www.devbook.cz :-) 
     */

    mb_internal_encoding("UTF-8");

    $hlaska = '';
    if ($_POST) // V poli _POST něco je, odeslal se formulář
    {
        if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
            isset($_POST['email']) && $_POST['email'] &&
            isset($_POST['zprava']) && $_POST['zprava'] &&
            isset($_POST['rok']) && $_POST['rok'] == date('Y'))
        {
            $hlavicka = 'From:' . $_POST['email'];
            $hlavicka .= "\nMIME-Version: 1.0\n";
            $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
            $adresa = 'brynolf@atlas.cz';
            $predmet = 'Nová zpráva z mailformu';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
            }
            else
                $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
        }
        else 
            $hlaska = 'Formulář není správně vyplněný!';
    }

?>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Kontaktní formulář</title>
    </head>
    <body>
        <p>Můžete mě kontaktovat pomocí formuláře níže.</p>
        
        <?php 
            if ($hlaska)
                echo('<p>' . $hlaska . '</p>');
        ?>  
        
        <form method="POST">
            <table>
                <tr>
                    <td>Vaše jméno</td>
                    <td><input name="jmeno" type="text" /></td>
                </tr>
                <tr>
                    <td>Váš email</td>
                    <td><input name="email" type="email" /></td>
                </tr>
                <tr>
                    <td>Aktuální rok</td>
                    <td><input name="rok" type="number" /></td>
                </tr>
            </table>
            <textarea name="zprava"></textarea><br />
            
            <input type="submit" value="Odeslat" />
        </form>
        
    </body>
</html>
Keeehi
Profil
... , "Jméno: $_POST[jmeno]<br>\n<br>\nZpráva:<BR>\n$_POST[zprava]", ...
tomas_vlcek
Profil
Díky za odpověď, ale nevím, kam to přesně dát.
Lonanek
Profil
V ř.35 přidat zvýrazněný text od Keeehi.

 $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
změnit na:
 $uspech = mb_send_mail($adresa, $predmet, "Jméno: $_POST[jmeno]<br>\n<br>\nZpráva:<BR>\n$_POST['zprava']", $hlavicka);

Doplním jen, že nejsou ošetřeny vstupní proměnné!
Davex
Profil
tomas_vlcek:
E-mail nedorazí, pokud je doména odesílatele chráněna pomocí SPF a mailserver příjemce by to kontroloval. Do hlavičky From je lepší dát vlastní adresu, která má povoleno odesílání z webserveru a adresu původního odesílatele formuláře vložit do hlavičky Reply-To. Z jiných dobrých důvodů by bylo lepší místo nativních funkcí pro odesílání e-mailu použít knihovny typu PHPMailer nebo Nette\Mail.

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: