Проблема с выводом сообщения после отправки формы
Господа, мучаю проблему уже 4й день, навыков в программировании около 0. Есть сайт на битриксе, там есть 2 одинаковых формы на разных страницах, я начал с более работающей, она отправляет письма и проходит валидацию, но не выводит сообщение об успешной отправке.
$(document).ready(function() {
$('#phone').inputmask("+7(999)999-99-99", {
showMaskOnHover: false,
showMaskOnFocus: true
});
$('#feedback').validate({
rules: {
name: {
required: true
},
phone: {
phoneRUS: true,
required: true
},
email: {
required: true,
email: true
}
},
messages: {
name: {
required: "Вы не заполнили поле"
},
phone: {
required: "Вы не заполнили поле"
},
email: {
required: "Вы не заполнили поле"
}
}
});
$('#feedback').submit(function() {
var form = $(this);
var error = false;
if (!error) {
var data = form.serialize();
$.ajax({
type: 'POST',
url: '/contacts/mailer.php',
dataType: 'json',
data: data,
success: function(data) {
//console.log(data);
if (!data['error']) {
$('.valid-text').text('Сообщение отправлено, мы с вами обязательно свяжемся').fadeIn('fast');
//echo('Ваша заявка отправлена');
}
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
}
return false;
});
});
Так же приведу код мейлера
<? php
include_once 'vendor/swiftmailer/swiftmailer/lib/swift_required.php';
$name = htmlspecialchars(strip_tags($_POST["name"]));
$phone = htmlspecialchars(strip_tags($_POST["phone"]));
$email = htmlspecialchars(strip_tags($_POST["email"]));
$text = htmlspecialchars(strip_tags($_POST["message"]));
$file = $_FILES['file'];
$errors = array();
if (empty($name)) {
$errors["name"] = "Не заполнено поле";
}
if (empty($phone)) {
$errors["phone"] = "Не заполнено поле";
}
if (empty($email)) {
$errors["email"] = "Не заполнено поле";
}
if (!empty($errors)) {
$errors = json_encode(array('success' => true, 'errors' => $errors));
}
$subject = 'Сообщение с сайта legiteam.ru';
$from = array('no-reply@****.ru');
$to = array(
'*******@gmail.com' => 'Evgeniy',
$email // ОПАСНОСТЬ?
);
$html = "<h3>$subject</h3><p>Ваша заявка успешно доставлена и будет обработана в ближайшее время.</p>
<p>Текст заявки: $text</p>
<p>Имя: $name</p>
<p>Телефон: $phone</p>
<p>E-mail: $email</p>";
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance();
$message - > setSubject($subject);
$message - > setFrom($from);
$message - > setBody($html, 'text/html');
$message - > setTo($to);
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
$message - > attach(Swift_Attachment::fromPath($_FILES['file']['tmp_name']) - > setFilename($_FILES['file']['name']));
}
$numSent = $mailer - > send($message);
//if ($mailer->send($message))
//{
// echo "Сообщение отправлено";
//}
// else
//{
// echo "Не удалось отправить сообщение";
//}
Так же к сообщению не прикрепляется файл, не знаю тут ли причина, это отложил на потом. Может ли быть причина в CSS, что не видно сообщения? (хотя пробовал и alert
и echo
) Еще я так понимаю тут часть кода задвоена, но попробовав убрать это задвоение получил поломку валидации. Я только начинаю осваиваться в веб программировании, мне этот код достался в таком виде за мелкими исключениями, но они ничего не поменяли, попросили помочь, вот и я сдался, прошу вашей помощи. Если кто откликнется, то прошу разъяснять все наиболее понятно, я пока плохо понимаю абстрактные примеры.
Еще такой вопрос: $email
// отравляет копию оставившему заявку, так как пока не озадачил себя тем, как сделать отдельное сообщение, подскажите не опасно ли использовать переменную тут, могут ли использовать уязвимость - подделать, например, $_POST['email']
, чтобы оно равнялось "abcd@efgh.ru; rm -rf /; echo
"