@kellyhelly

Как сделать капчу в форме обязательной?

Добрый вечер!

Сделала отправку заявок с сайта и вставила Google ReCaptcha 2.0. Есть некоторые обязательные поля, на которые сайт ругается, если они не заполнены. А капчу можно вообще не проходить и форма спокойно отправляется. Как её сделать обязательной?

Код mail.php (обработчик):
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once('Exception.php');
require_once('PHPMailer.php');
require_once('SMTP.php');
$mail = new PHPMailer();
$mail->CharSet = 'utf-8';

$name = $_POST["name"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$city = $_POST["city"];  

$mail->SMTPDebug = 0;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.yandex.ru';                         // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'xxx@yandex.ru'; // Ваш логин от почты с которой будут отправляться письма
$mail->Password = 'xxx'; // Ваш пароль от почты с которой будут отправляться письма
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров

$mail->setFrom('xxx@yandex.ru'); // от кого будет уходить письмо?
$mail->addAddress('xxx@mail.ru');     // Кому будет уходить письмо 
//$mail->addAddress('ellen@example.com');               // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name


$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Новая заявка со страницы ' . $_POST['page'];
$mail->Body    = 'Имя: ' .$name . '<br>Телефон: ' .$phone. '<br>Эл. почта: ' .$email. '<br>Город: ' .$city. ; 
$mail->AltBody = '';

if(!$mail->send()) {
  echo 'Письмо не может быть отправлено. ';
  echo 'Ошибка: ';
}                            
?>


Код js:
$(document).ready(function() {

// Добавляем маску для поля с номера телефона
$('.phonemasked').each(function(){
  $(this).mask('+7 (999) 999-99-99');
});
$(".user_request").submit(function() {
  if ( !this.checkValidity() )
    alert('Пожалуйста, заполните обязательные поля.');
  else {
    $.ajax({
      type: "POST",
      url: "/form/mail.php",
      data: $( this ).serialize(),
            success: function (data) {
                window.location.href = "../спасибо-за-заказ.htm";
            },
});
      // очищаем поля
      $('#name').val('');
      $('#phone').val('');
      $('#email').val('');
      $('#city').val('');
      $('#nalog').val('');
      $('#okved').val('');
      $('#participants').val('');
      $('#inn').val('');
    
  };
  return false;
  });
});
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы