Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

Diskuze: Kontaktní formulář na stránce

PHP PHP Kontaktní formulář na stránce American English version English version

Aktivity (1)
Avatar
Jakub Ráž
Člen
Avatar
Jakub Ráž:13. listopadu 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. listopadu 12:23
Avatar
dez1nd
Člen
Avatar
Odpovídá na Jakub Ráž
dez1nd:13. listopadu 13:21

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

 
Nahoru Odpovědět 13. listopadu 13:21
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. listopadu 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. listopadu 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.