Всем привет!
Помогите, пожалуйста, доработать код формы обратной связи..
Необходимо, чтобы поле message было не обязательным к отправке.
Сейчас ситуация следующая: письма из формы уходят на почту, но если поле сообщение не заполнено, письмо не уходит.
<div class="btn-greenbackground pt-40 pb-15 pl-30">
<div class="adaptive-header"><h30><p style="line-height: 0.35"><b>Отправьте заявку на участие</b><br/>
__________________________</p></h30>
</div></div>
<!-- атрибут required говорит, что заполнение поля обязательно -->
<form method="POST" id="feedback-form">
<div class="btn-greenbackground p-30 pt-20 pl-30 pr-30 pb-25">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<input type="text" name="nameFF" style="border-radius:2px;border-style:none;height:40px;width:100%;color:black" required placeholder="Ваше имя" x-autocompletetype="name">
</div>
</div>
<div class="col-sm-6 mt-5">
<div class="form-group">
<p style='font-size:10px ; font-family: Arial, sans-serif;'>*Укажите, пожалуйста, Ваше имя и мы отправим Вам именное приглашение</p>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<input type="email" name="contactFF" style="border-radius:2px;border-style:none;height:40px;width:100%;color:black" required placeholder="Ваш email" x-autocompletetype="email">
</div>
</div>
<div class="col-sm-6 mt-5">
<div class="form-group">
<p style='font-size:10px ; font-family: Arial, sans-serif;'>*Укажите, пожалуйста, Ваш email, на который будет отправлено приглашение</p>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<input type="text" name="messageFF" placeholder="Ваш телефон" style="border-radius:2px;border-style:none;height:40px;width:100%;color:black">
</div>
</div>
<div class="col-sm-6 mt-5">
<div class="form-group">
<p style='font-size:10px ; font-family: Arial, sans-serif;'>*Укажите Ваш телефон для получения смс- уведомлений о мероприятиях</p>
</div>
</div>
</div> </div>
<div class="form-group">
<button type="submit" class="btn btn-flat btn-theme-colored btn-herbal text-uppercase col-md-12 col-sm-12 col-xs-12 mt-10 border-left-theme-color-2-4px " data-loading-text="Пожалуйста, подождите...">Принять участие</button>
</div>
</form>
<p style='font-size:11px; font-family: Arial; san-serif; align=’right’'>Нажимая кнопку "Принять участие" Вы соглашаетесь с <a href="/privacy_policy.html" target="_blank"><font color="red">Политикой конфиденциальности</font></a></p>
<script>
document.getElementById('feedback-form').addEventListener('submit', function(evt){
var http = new XMLHttpRequest(), f = this;
evt.preventDefault();
http.open("POST", "contacts.php", true);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.send("nameFF=" + f.nameFF.value + "&contactFF=" + f.contactFF.value + "&messageFF=" + f.messageFF.value);
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей организации!');
f.messageFF.removeAttribute('value'); // очистить поле сообщения (две строки)
f.messageFF.value='';
}
}
http.onerror = function() {
alert('Извините, данные не были переданы');
}
}, false);
</script>
<!-- Contact Form Validation-->
<script type="text/javascript">
$("#contact_form").validate({
submitHandler: function(form) {
var form_btn = $(form).find('button[type="submit"]');
var form_result_div = '#form-result';
$(form_result_div).remove();
form_btn.before('<div id="form-result" class="alert alert-success" role="alert" style="display: none;"></div>');
var form_btn_old_msg = form_btn.html();
form_btn.html(form_btn.prop('disabled', true).data("loading-text"));
$(form).ajaxSubmit({
dataType: 'json',
success: function(data) {
if( data.status == 'true' ) {
$(form).find('.form-control').val('');
}
form_btn.prop('disabled', false).html(form_btn_old_msg);
$(form_result_div).html(data.message).fadeIn('slow');
setTimeout(function(){ $(form_result_div).fadeOut('slow') }, 6000);
}
});
}
});
</script>
</div>
</div>
</section>
</div>
<?php
function smtpmail($mail_to, $subject, $message, $headers='') {
//Настройки почты
$config['smtp_username'] = 'admin@spasibo.life'; //Смените на имя своего почтового ящика из ISPManager.
$config['smtp_password'] = 'Jhmeg43600s029a'; //Измените пароль.
$config['smtp_from'] = 'Ikkk'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого".
//Обычно эти настройки менять не стоит
$config['smtp_host'] = 'smtp.beget.com'; //Сервер для отправки почты (для наших клиентов менять не требуется).
$config['smtp_port'] = '2525'; // Порт работы. Не меняйте, если не уверены.
$config['smtp_debug'] = true; //Если Вы хотите видеть сообщения ошибок, укажите true вместо false.
$config['smtp_charset'] = 'UTF-8'; //Кодировка сообщений.
$SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n";
$SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n";
if ($headers) $SEND .= $headers."\r\n\r\n";
else
{
$SEND .= "Reply-To: ".$config['smtp_username']."\r\n";
$SEND .= "MIME-Version: 1.0\r\n";
$SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n";
$SEND .= "Content-Transfer-Encoding: 8bit\r\n";
$SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n";
$SEND .= "To: $mail_to <$mail_to>\r\n";
$SEND .= "X-Priority: 3\r\n\r\n";
}
$SEND .= $message."\r\n";
if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) {
if ($config['smtp_debug']) echo $errno."<br>".$errstr;
return false;
}
if (!server_parse($socket, "220", __LINE__)) return false;
fputs($socket, "EHLO " . $config['smtp_host'] . "\r\n");
if (!server_parse($socket, "250", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу отправить EHLO!</p>';
fclose($socket);
return false;
}
fputs($socket, "AUTH LOGIN\r\n");
if (!server_parse($socket, "334", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизации!</p>';
fclose($socket);
return false;
}
fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
if (!server_parse($socket, "334", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>';
fclose($socket);
return false;
}
fputs($socket, base64_encode($config['smtp_password']) . "\r\n");
if (!server_parse($socket, "235", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
fclose($socket);
return false;
}
fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
if (!server_parse($socket, "250", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу отправить команду MAIL FROM:</p>';
fclose($socket);
return false;
}
fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n");
if (!server_parse($socket, "250", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу отправить команду RCPT TO:</p>';
fclose($socket);
return false;
}
fputs($socket, "DATA\r\n");
if (!server_parse($socket, "354", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу отправить команду DATA!</p>';
fclose($socket);
return false;
}
fputs($socket, $SEND."\r\n.\r\n");
if (!server_parse($socket, "250", __LINE__)) {
if ($config['smtp_debug']) echo '<p>Не могу отправить тело письма. Письмо не было отправлено!</p>';
fclose($socket);
return false;
}
fputs($socket, "QUIT\r\n");
fclose($socket);
return TRUE;
}
function server_parse($socket, $response, $line = __LINE__) {
global $config;
while (substr($server_response, 3, 1) != ' ') {
if (!($server_response = fgets($socket, 256))) {
if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response
$line
";
return false;
}
}
if (!(substr($server_response, 0, 3) == $response)) {
if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response
$line
";
return false;
}
return true;
}
//Отправить почту сразу нескольким получателям, ящики получателей пишем через запятую.
function smtpmassmail($mail_to, $subject, $message, $headers='')
{
$mailaddresses=explode(",",$mail_to);
foreach ($mailaddresses as $mailaddress) smtpmail($mailaddress,$subject,$message,$headers);
}
?>