У меня есть эта простая форма для отправки по электронной почте на php. Хорошая вещь об этой форме в send php-код заключается в том, что мне не нужно записывать все имена полей. Например, мне не нужно писать это:
$msg .= "$_POST[ContactName] Contact Name: ContactName\n"
В моем коде все, что мне нужно написать, это:
foreach ($_POST as $Field=>$Value) {
$body .= "$Field: $Value\n";
Форма в настоящее время работает отлично. В настоящее время он отправляет это:
ContactName: name here
BusinessName: business name here
EmailAddress: [email protected]
Email_Confirmation:
PhoneNumber: 714-555-5555
Однако я хотел бы, чтобы это произошло: если поле осталось пустым или веб-пользователь не заполняет его определенным полем поля, то форма НЕ должна отправлять это поле. Например: веб-пользователь решает НЕ заполнять ContactName и или BusinessName. Поэтому форма должна отправлять только этот формат:
EmailAddress: [email protected]
Email_Confirmation:
PhoneNumber: 714-555-5555
Заметил не упоминание ContactName: и BusinessName:
Пожалуйста помоги! Буду премного благодарен. -Michelle Ха.
Вот код отправки php:
if the Email_Confirmation field is empty
if(isset($_POST['Email_Confirmation']) && $_POST['Email_Confirmation'] == ''){
// put your email address here
$youremail = '[email protected]';
// prepare a "pretty" version of the message
$body .= "Thank you for your request. We will get back with you soon.";
$body .= "\n";
$body .= "\n";
foreach ($_POST as $Field=>$Value) {
$body .= "$Field: $Value\n";
$body .= "\n";
}
$CCUser = $_POST['EmailAddress'];
// Use the submitters email if they supplied one
// (and it isn't trying to hack your form).
// Otherwise send from your email address.
if( $_POST['EmailAddress'] && !preg_match( "/[\r\n]/", $_POST['EmailAddress']) ) {
$headers = "From: $_POST[EmailAddress]";
} else {
$headers = "From: $youremail";
}
// finally, send the message
mail($youremail, 'subject line here', $body, $headers, $CCUser );
}
// otherwise, let the spammer think that they got their message through
foreach ($_POST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n";
}
}
Добавьте проверку для вас
if(empty($Value)) continue;
И измените значение по умолчанию в вашей форме на заполнители