所以,我正在尝试创建一个联系表单。客户可以将产品添加到购物车。这是使用会话完成的。会话productname
显然存储了产品的名称。
我需要代码来检查它是否包含姓氏和电子邮件。如果没有,则显示错误消息。然后它检查验证码。如果一切正常,则需要发送2封电子邮件,一封发送到我的电子邮件地址($LMEY_email
),另一封发送给客户的电子邮件。这两封电子邮件都应包含已填写的数据。
现在我的代码确实发了一封电子邮件,除了一个,它只包含数据。 $title
包含$lastname
,这在发送电子邮件时效果很好。如果您向下滚动代码,$lastname
内的同一$message
不会向我提供任何数据。
另外,如果我保留这样的代码,我会收到消息:
Fatal error: Call to undefined function SendEmail() in /home/./././public_html/folder/pagename.php on line XXX
我不明白,因为这个功能正好在调用该功能的行之下。
如果我交换位置(首先是函数,第二个是调用),警告就会消失。
我需要更改哪些内容才能获取电子邮件中的数据并删除警告?
代码:
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
define("PRODUCTNAME", 1);
$LMEY_email ='name@mail.com';
$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : '';
$itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
if ($itemcount == 0)
{
header("Location: "."error.php?msg=".rawurlencode("Voeg aub eerst evenementen toe voordat u uw informatieaanvraag afrondt."));
$strHTML = "<font class='bewaardeItems'>U heeft nog geen evenementen aangeklikt.</font>";
exit;
}
$errors = '';
$firstname = '';
$lastname = '';
$straatnaam = '';
$huisnummer = '';
$postcode = '';
$woonplaats = '';
$land = '';
$visitor_email = '';
$telefoonnummer = '';
$deelnemers = '';
$optiedatum = '';
$opmerkingen = '';
$straatnaam_feestlocatie = '';
$huisnummer_feestlocatie = '';
$postcode_feestlocatie = '';
$plaats_feestlocatie = '';
$land_feestlocatie = '';
$strHTML = "<div style=\"overflow:auto; height=358px;\">"."\n";
$strHTML .= "<table border=\"0\" cellpadding=\"3\" cellspacing=\"2\" width=\"100%\">"."\n";
for ($i=0; $i<$itemcount; $i++)
{
$strHTML .= "<tr>"."\n";
$strHTML .= "<td><a href='".$cart[PRODUCTNAME][$i]['savelink']."' class='bewaardeItems'>".$cart[PRODUCTNAME][$i]['eventnaam']."</a></td>"."\n";
$strHTML .= "</tr>"."\n";
}
$strHTML .= "</table>"."\n";
$strHTML .= "</div>"."\n";
if(isset($_POST['submit']))
{
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$straatnaam = $_POST['straatnaam'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$land = $_POST['land'];
$visitor_email = $_POST['email'];
$telefoonnummer = $_POST['telefoonnummer'];
$deelnemers = $_POST['deelnemers'];
$optiedatum = $_POST['optiedatum'];
$opmerkingen = $_POST['opmerkingen'];
$straatnaam_feestlocatie = $_POST['straatnaam_feestlocatie'];
$huisnummer_feestlocatie = $_POST['huisnummer_feestlocatie'];
$postcode_feestlocatie = $_POST['postcode_feestlocatie'];
$plaats_feestlocatie = $_POST['plaats_feestlocatie'];
$land_feestlocatie = $_POST['land_feestlocatie'];
///------------Do Validations-------------
if(empty($lastname)||empty($visitor_email))
{
$errors .= "\n Naam en email zijn verplicht. ";
}
if(IsInjected($visitor_email))
{
$errors .= "\n Ongeldige email!";
}
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
$errors .= "\n De beveiligingscode komt niet overeen!";
}
if(empty($errors))
{
//verzend de mail vanaf hier
if (!isset($visitor_email))
{
header("Location: "."error.php?msg=".rawurlencode("We hebben uw gegevens niet ontvangen, probeert u het aub. nogmaals."));
exit;
}
// create an ID
$orderid = strtotime("now").$_SERVER['REMOTE_ADDR'];
$orderid = str_replace(".", "", "$orderid");
// create timestamp
$timestamp = date("Y-m-d H:i:s");
// mail data to customer
$subject = "Informatie aanvraag Entertain You events";
$title = "Wij hebben uw aanvraag ontvangen, waarvoor hartelijk dank! Wij streven er naar om u binnen 2 werkdagen van antwoord te voorzien. Ondanks dat deze mail automatisch is opgesteld, kunt u eventuele vragen stellen door deze mail te beantwoorden.";
SendEmail($visitor_email, $subject, $title, $orderid, $timestamp, true);
// mail data to me
$subject = "Nieuwe informatie aanvraag";
$title = "Dhr. / Mevr. ".$lastname." heeft het contactformulier ingevuld. De volgende gegevens zijn daarbij verzonden:";
SendEmail($LMEY_email, $subject, $title, $orderid, $timestamp, false);
function SendEmail($mailto, $subject, $title, $orderid, $timestamp, $maskcardno)
{
$header = "From: Entertain You Events"."\r\n";
$header .= "Reply-To: ".$LMEY_email."\r\n";
$header .= "MIME-Version: 1.0"."\r\n";
$header .= "Content-Type: text/plain; charset=utf-8"."\r\n";
$header .= "Content-Transfer-Encoding: 8bit"."\r\n";
$header .= "X-Mailer: PHP v".phpversion();
$message = $title."\r\n"."\r\n";
$message .= "Aanvraagnummer: LMEY".$orderid."\r\n";
$message .= "Aanvraagdatum: ".$timestamp."\r\n"."\r\n";
$message .= "Persoonlijke gegevens:"."\r\n";
$message .= "Voornaam: ".$firstname."\r\n";
$message .= "Achternaam: ".$lastname."\r\n";
$message .= "Email: ".$visitor_email."\r\n";
$message .= "Adres: ".$straatnaam." - ".$huisnummer."\r\n";
$message .= "Woonplaats: ".$woonplaats."\r\n";
$message .= "Postcode: ".$postcode."\r\n";
$message .= "Land: ".$land."\r\n";
$message .= "Telefoonnummer: ".$telefoonnummer."\r\n"."\r\n";
$message .= "Informatie-aanvraag over de volgende evenementen:"."\r\n"."\r\n";
$message .= "======================================================="."\r\n";
$itemcount = $_SESSION['itemcount'];
$cart = $_SESSION['cart'];
for ($i=0; $i<$itemcount; $i++)
{
$message .= $cart[PRODUCTNAME][$i]."\t";
$message .= "\r\n";
}
$message .= "======================================================="."\r\n";
$message .= "\r\n"."\r\n";
mail($mailto, $subject, stripslashes($message), $header);
}
header("Location: "."succes.php?msg=".rawurlencode("Succes!"));
}
}