Обязательное поле в phpmailer для сафари
Как добавить обязательное поле в phpmailer для сафари?
да именно когда браузер сафари, использую этот плагин PHP + AJAX скрипт отправки форм на E-mail
нашел плагин еще один он как раз для сафари https://habr.com/post/181782/ но почемуто конфликтует с тем что было написано для скрипта формы
function send(form,otziv) {
jform = $(form);
window.form = form;
data = jform.serialize() + '&type=' + form.id;
console.log(data);
jQuery.ajax({
url: '/send_email.php',
beforeSend: lock_button,
cache: false,
async: false,
success: function (data) {
console.log(data);
restore_button();
if (otziv==1) {
$('#overlay1').fadeIn(400,
function () {
$('#modal_form4')
.css('display', 'block')
.animate({
opacity: 1,
top: '35%'
}, 200);
});
}
else {
$('#overlay1').fadeIn(400,
function () {
$('#modal_form3')
.css('display', 'block')
.animate({
opacity: 1,
top: '35%'
}, 200);
});
};
},
type: 'POST',
data: data
});
}
если это удалить проверка идет, по другому опять не видит...
Добрый день. Не совсем понятен вопрос. Если вы используете phpmailer (class.smtp.php и class.phpmailer.php) и обработчик, допустим, send.php, где задаются параметры, который выглядит примерно так:
<?php // Файлы phpmailer require 'class.phpmailer.php'; require 'class.smtp.php'; // Переменные $name = $_POST['name']; $number = $_POST['number']; $email = $_POST['email']; // Настройки $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 'smtp.yandex.ru'; $mail->SMTPAuth = true; $mail->Username = 'yourlogin'; // Ваш логин в Яндексе. Именно логин, без @yandex.ru $mail->Password = 'yourpass'; // Ваш пароль $mail->SMTPSecure = 'ssl'; $mail->Port = 465; $mail->setFrom('example@yandex.ru'); // Ваш Email $mail->addAddress('example@mail.ru'); // Email получателя $mail->addAddress('example@gmail.com'); // Еще один email, если нужно. // Прикрепление файлов for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) { $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct])); $filename = $_FILES['userfile']['name'][$ct]; if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) { $mail->addAttachment($uploadfile, $filename); } else { $msg .= 'Failed to move file to ' . $uploadfile; } } // Письмо $mail->isHTML(true); $mail->Subject = “Заголовок”; // Заголовок письма $mail->Body = “Имя $name . Телефон $number . Почта $email”; // Текст письма // Результат if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'ok'; } ?>То при создании формы, Вы можете создать любые поля и дописать переменные в обработчик. Пример формы:
Здесь, как мы видим, у полей Имя и Email стоит required. Он работает при поддержке html5 и раньше не всегда корректно работал со всеми браузерами. Поэтому можно написать дополнительную валидацию формы на js. Простейший пример:
function validateForm() { var x=document.forms["MyForm"]["name"].value; if (x==null || x=="") { alert("Необходимо заполнить поле Имя!"); return false; } }А форма принимает вид:
Или нужно сделать обязательное поле с условием на то, что браузер пользователя именно safari?