Diskuze: Kontaktní formulář pomoc prosím
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Musis ale pocitat s tim, ze servery budou blokovat hromadne odesilani mailu.
google = php mail utf8
<?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) ."?="; // pridano, nejsem si ted jisty, ale asi by se melo kodovat vse
$subject = "=?utf-8?B?".base64_encode($subject)."?=";
$headers = array(); // to jsem zmenil jen na array, pro zjednoduseni
$headers[] = "From: $from"; // zmeneno, cely ten radek byl spatne
$headers[] = "Reply-To: $from";
$headers[] = "Return-To: $from"; // pridano
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-Type: text/html; charset=utf-8";
$headers[] = "Content-Transfer-Encoding: base64";
$headers[] = "X-Mailer: PHP/" . phpversion(); // pridano
$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
}
OdesliEmail("[email protected] <[email protected]>", '[email protected]', 'test', 'test', $_SERVER['HTTP_HOST']);
// http://php.net/manual/en/function.mail.php
// error_reporting mas zapnute? Jakou to vypisuje chyb?
// http://php.net/manual/en/reserved.variables.server.php
//function OdesliEmail($prijemce,$predmet,$obsah,$odesilatel) {
//global $domena; // upraveno
//$upravenadomena=ereg_replace("http://","",$domena);
//$replyTo = $odesilatel;
//$encodeOdesilatelJmeno = base64_encode("[email protected]");
//$encodeOdesilatelJmeno = "=?utf-8?B?".base64_encode($odesilatelJmeno)."?=";
?>
jo, tam by melo byt
if OdesliEmail(...) echo 'odeslano' else echo 'chyba pri odesilani';
Navic je dobre vypsat cas, kdyz to testujes, aby bylo videt, ze doslo k obnoveni stranky.
echo date('m/d/Y h:i:s a', time());
Zobrazeno 3 zpráv z 3.