Не работайте правильно recaptcha v2 с ajax почтой - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть страница контактной формы. Существует проблема с проверкой рекапчи. Я исследовал много решений, но не мог найти никакого пути. После ожидания в течение некоторого времени после подтверждения рекапчи, время ожидания истекло. Но после тайм-аута почта отправляется без подтверждения рекапчи. Как я могу решить эту проблему?

HTML:

<form id="contact-form" action="fly.php" method="post">
 <input type="text" id="namesurname" name="namesurname" class="form-control form-control-lg" data-rule-required="true" data-msg-required="Please enter your name" style="border:none; border-bottom:solid; border-bottom-color:#00195A" placeholder="Ad Soyad">
 <input type="email" id="emailaddress" name="emailaddress" class="form-control form-control-lg" data-rule-required="true" data-msg-required="Please enter your email address" style="border:none; border-bottom:solid; border-bottom-color:#00195A" placeholder="E-mail">
 <input type="tel" id="phonenumber" name="phonenumber" class="form-control form-control-lg" data-rule-required="true" data-msg-required="Please enter your phone number" style="border:none; border-bottom:solid; border-bottom-color:#00195A" placeholder="Telefon">
 <textarea type="text" id="messagearea" name="messagearea" class="form-control form-control-lg" data-rule-required="true" data-msg-required="Please enter your notes" style="border:none; border-bottom:solid; border-bottom-color:#00195A" placeholder="Mesajınız"></textarea>
 <div id="g-recap"></div>
 <input type="submit" name="btn-contact-form" id="btn-contact-form" class="form-control form-control-lg" disabled style="border:solid; color:#00195A" value="Gönder">
 <div id="form-result-success" style="display:none">Success</div>
 <div id="form-result-error" style="display:none">Error</div>
</form>

JS:

<script type="text/javascript">
    var verifyCallback = function (response) {
    };

    var onloadCallback = function () {
        grecaptcha.render('g-recap', {
            'sitekey': 'siteKey',
            'callback': verifyCallback,
            'theme': 'light'
        });
    };
</script>
<script>
    $("#contact-form").validate({
        submitHandler: function (form) {
            var response = grecaptcha.getResponse();
            if (response.length == 0 || response == "" || response == undefined) {
                $('#form-result-success').hide();
                $('#form-result-error').show();
                return false;
            }
            else {
                    var name = $("#namesurname").val();
                    var email = $("#emailaddress").val();
                    var phone = $("#phonenumber").val();
                    var message = $("#messagearea").val();
                    $.ajax({
                        type: "POST",
                        url: "fly.php",
                        data: {
                            name: name,
                            email: email,
                            phone: phone,
                            message: message
                        },
                        success: function () {
                            console.log("OUR FORM SUBMITTED CORRECTLY");
                        }
                    })
                $('#form-result-error').hide();
                $('#form-result-success').show();
            }
        }
    });
</script>
...