Intereting Posts

Форма PHP: успешная электронная почта с заполненными полями

Борьба с этим в течение некоторого времени. В основном у меня есть 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=#\">"; } ?> 

Используйте пустой, чтобы проверить, было ли опубликовано значение:

 $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"; } 

ect ect. Это говорит, что если местоположение не пустое, тогда сделайте этот код

Да, просто добавьте чек, прежде чем присоединить поля к телу, например:

 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 }