IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: Kontaktní formulář na stránce

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jakub Ráž
Člen
Avatar
Jakub Ráž:13.11.2018 12:23

Zdravím, potřebuji pomoci s odesíláním obsahu formuláře do e-mailu... Můj kód by měl být funkční, alespoň podle různých formulářů na internetu. Obrázek ukazuje vzhled formuláře.

Zkusil jsem:

<?php

if (isset($_POST['submit'])){
    $name = $_POST['name'];
    $email = $_POST['email'];

    $message = $_POST['message'];

    $to = "[email protected]";

    $message = "Jméno a příjmení: ".$name."\n"."Email: ".$email."\n". "Napsal následující: "."\n\n".$message;
    $headers = "Od: ".$email;

    if(mail($to, $message, $headers)){
        echo "<h1>Úspěšně odesláno! Děkujeme za váš dotaz"." ".$name.", brzy vám přijde odpověď na váš dotaz.</h1>";
    }
    else{
        echo "Něco se nepovedlo. Omlouváme se.";
    }
}

Chci docílit: Potřebuji docílit odesílání vyplněného kontaktního formuláře. Budu vděčný za každou radu a i za kritiku, jelikož v PHP jsem začátečník tak nevím přesně jak a co funguje. Děkuji moc :)

 
Odpovědět
13.11.2018 12:23
Avatar
dez1nd
Člen
Avatar
Odpovídá na Jakub Ráž
dez1nd:13.11.2018 13:21

máš prohozený 2. a 3. parametr fuknce mail().
mail($prijemnce, $predmet, $textZpravy);

 
Nahoru Odpovědět
13.11.2018 13:21
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13.11.2018 13:27

https://www.itnetwork.cz/…be0147ff146c
Cizi kody neres, pouzij priklady z dokumentace. Toto jsem udelal od oka, tak mozna je tam chybka.

<?php
function OdesliEmail($from, $to, $subject, $message, $domena)
{
//if ($domena=="localhost ") {return false;} // upraveno

$from      = "=?utf-8?B?".base64_encode($from)   ."?=";
$to        = "=?utf-8?B?".base64_encode($to)     ."?=";
$subject   = "=?utf-8?B?".base64_encode($subject)."?=";

$headers   = array();
$headers[] = "From: $from";
$headers[] = "Reply-To: $from";
$headers[] = "Return-To: $from";
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-Type: text/html; charset=utf-8";
$headers[] = "Content-Transfer-Encoding: base64";
$headers[] = "X-Mailer: PHP/" . phpversion();
$headers[] = "";
$headers   = implode(PHP_EOL, $headers);        // konverze array na string pridanim PHP_EOL = \r\n nebo \n v nekterych verzich php

$message   = "<html>\n<body>\n$message\n</body>\n</html>";
$message   = wordwrap(base64_encode($message), 76, PHP_EOL, true); // tady by se to asi nemuselo wrapovat; a nejsem si jisty, jestli i body by nemelo projit kodovanim na utf8

return mail($to, $subject, $message, $headers); // pridano return
}

$bool = OdesliEmail("[email protected] <[email protected]>", '[email protected]', 'test', 'test', $_SERVER['HTTP_HOST']);
if ($bool) {echo 'odeslano';} else {echo 'chyba pri odesilani';}

?>

kazdopakde viz dez1nd, najdi 7 rozdilu :)
mail($to, $message, $headers)) // tvoje
mail($to, $subject, $message, $headers); // moje

 
Nahoru Odpovědět
13.11.2018 13:27
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 3 zpráv z 3.