У меня есть эта простая форма для отправки по электронной почте на 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@email.com Email_Confirmation: PhoneNumber: 714-555-5555
Однако я хотел бы, чтобы это произошло: если поле осталось пустым или веб-пользователь не заполняет его определенным полем поля, то форма НЕ должна отправлять это поле. Например: веб-пользователь решает НЕ заполнять ContactName и или BusinessName. Поэтому форма должна отправлять только этот формат:
EmailAddress: email@email.com Email_Confirmation: PhoneNumber: 714-555-5555
Заметил не упоминание ContactName: и BusinessName:
Пожалуйста помоги! Буду премного благодарен. Мишель Ха.
Вот код отправки php:
if the Email_Confirmation field is empty if(isset($_POST['Email_Confirmation']) && $_POST['Email_Confirmation'] == ''){ // put your email address here $youremail = 'bomandty@gmail.com'; // 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