[英]PHP form to Email - Email to contain data only from the filled out fields
[英]PHP form: Success email with only filled fields
一直為此苦苦掙扎了一段時間。 基本上我有6個字段,名稱,電子郵件,電話,位置,日期和預算。 名稱和電子郵件是唯一必填字段。 收到電子郵件后,我還會看到其余字段。 是否可以僅接收已填寫的字段?
這是代碼;
<?php
// get posted data into local variables
$EmailFrom = "email@email.com";
$EmailTo = "email@email.com";
$Subject = "My form";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Phone = Trim(stripslashes($_POST['Phone']));
$Location = Trim(stripslashes($_POST['Location']));
$Date = Trim(stripslashes($_POST['Date']));
$Budget = Trim(stripslashes($_POST['Budget']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
exit;
}
$userip = ($_SERVER['X_FORWARDED_FOR']) ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
// prepare email body text
$Body = "";
$Body .= "Location: "; $Body .= $Location; $Body .= "\n";
$Body .= "Date: "; $Body .= $Date; $Body .= "\n";
$Body .= "Budget: "; $Body .= $Budget; $Body .= "\n";
$Body .= "Name: "; $Body .= $Name; $Body .= "\n";
$Body .= "Email: "; $Body .= $Email; $Body .= "\n";
$Body .= "Phone: "; $Body .= $Phone; $Body .= "\n";
$Body .= "User's IP: ". $userip;
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
}
?>
使用empty檢查是否發布了值:
$Phone = !empty($_POST['Phone']) ? trim(stripslashes($_POST['Phone'])) : false;
然后,如果未填充$Phone
它將為false,您可以執行以下操作:
if($Phone)
$Body .= "Phone: "; $Body .= $Phone; $Body .= "\n";
您只需檢查一下該值是否存在即可。 您可以這樣做:
if (!empty($Location) { $Body .= "Location: "; $Body .= $Location; $Body .= "\n"; }
等等。 這就是說,如果位置不為空,則執行該代碼
是的,只需在將字段合並到正文之前添加一個檢查,例如:
if(!$Location)
{
$Body .= "Location: "; $Body .= $Location; $Body .= "\n";
}
/*You can also use empty like: */
if(!empty($Date))
{
$Body .= "Location: "; $Body .= $Date; $Body .= "\n";
}
/*Continue here*/
if (isset($_POST['phone'] && !empty($_POST['phone']){
$phone = $_POST['phone'];
//add $phone to email body
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.