Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PHP Email v Bootstrap šabloně

Aktivity
Avatar
pchd
Člen
Avatar
pchd:9.5.2018 20:18

Dámy a pánové,
můžete mi, někdo, prosím Vás poradit jak tohle naučím česky? Formulář funguje, emaily chodí, ale diakritika nefunguje. Jedná se o php soubor z Bootstrap šablony, jednoduchý web... Zkoušel jsem přidávat hlavičky s kódování, ale buď jsem je dával blbě nebo nevím...
Díky moc za každou radu.

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
MIME-Version: 1.0\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit
if ( isset($_POST['fir­st_name']) && isset($_POST['las­t_name']) && isset($_POST['e­mail']) && isset($_POST['pro­ject_name']) && isset($_POST['des­cription']) && filter_var($_POS­T['email'], FILTER_VALIDA­TE_EMAIL) ) {
// detect & prevent header injections
$test = "/(content-type|bcc:|cc:|­to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
exit;
}
}

$first_name = $_POST['first_na­me'];
$last_name = $_POST['last_na­me'];
$email = $_POST['email'];
$project_name = $_POST['projec­t_name'];
$description = $_POST['descrip­tion'];

$message = "
Jméno: $first_name \n
Příjmení: $last_name\n
Předmět: $project_name\n
Zpráva: $description
";

mail( "[email protected]", $_POST['date'], $message, "From:" . $_POST['email'] );
// ^
// Replace with your email
}
?>

 
Odpovědět
9.5.2018 20:18
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na pchd
Petr Čech:9.5.2018 21:34

Takto se budeš muset pachtit s věcmi jako content-transfer-encoding, doporučuji použít nějakou knihovnu. Já mám dobrou zkušenost s PhpMailerem.

Nahoru Odpovědět
9.5.2018 21:34
the cake is a lie
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:10.5.2018 7:34

php.net/mail

function mailSend($mail)
        {
        $head = array();
        $head[] = "From: ".$mail['from'];
        $head[] = "X-Mailer: PHP";              // mailovy klient
        $head[] = "Return-Path: ".$mail['from'];        // navratová cesta pro chyby
        $head[] = "Reply-To: ".$mail['from'];
        $head[] = "MIME-Version: 1.0";                  // mime type
        $head[] = "Content-Type: text/html; charset=UTF-8"; // HTML format 1
        $head[] = "Content-Transfer-Encoding: 8bit";
        $head = implode("\r\n",$head);
        $mail['subject'] = "=?UTF-8?B?" . base64_encode($mail['subject']) . "?=";
        $d = date("Y-m-d H:i:s",time());
/*
        $browser = @get_browser(null, true);
        $mail['message'] .= "\n\n";
        if ($browser)
                {
                $mail['message'] .= implode(", ", array(
                        'Date'.": ".$d,
                        'platform'.": ".$browser['platform'],
                        'browser'.": ".$browser['browser'],
                        'version'.": ".$browser['version'],
                        isset($browser['parent']) ? 'parent'.": ".$browser['parent'] : ''
                        ));
                }
*/
        $mail['message'] .= "\n".'ip'.": ".getIp();
        $mail['message'] = nl2br($mail['message']); // HTML format 2
//echo '<pre>'; var_dump($mail); echo '</pre>';
        ini_set("SMTP", "smtp.muj_server.cz");  // mailovy server (slu funguje jen na slu strankach)
        $bool = false;
        $bool = mail($mail['to'], $mail['subject'], $mail['message'], $head);
        if ($bool)
                {fce_notice('Mail odeslan. '.$d, '');}
        else    {fce_notice('Mail error! '.$d, true);}
        return $bool;
        }
 
Nahoru Odpovědět
10.5.2018 7:34
Avatar
Lasvit
Člen
Avatar
Odpovídá na pchd
Lasvit:10.5.2018 10:11

Stačí jednoduše použít http://php.net/…end-mail.php (nechápu proč každý používá mail()) ... a v header mít minimálně

$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
Editováno 10.5.2018 10:12
 
Nahoru Odpovědět
10.5.2018 10:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:10.5.2018 15:33

To nestaci. Spousta mailovacich programu kodovani nerozumi spravne. Pri trose stesti ti body zkoduje do utf-8, ale subject treba zobrazi jako latin-1.
Navic, spousta programu ignoruje mail, pokud nema vyplnene dalsi hlavicky.

Editováno 10.5.2018 15:34
 
Nahoru Odpovědět
10.5.2018 15:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.