Здравствуйте. У меня проблема с невидимой речевой кодировкой, потому что я не могу проверить большинство запросов.
Я много искал в форуме, но пока не нашел решения.
Я использую JQuery Плагин валидации для проверки формы и AJAX.
Я знаю, что это глупый вопрос но мне очень нужна твоя помощь, чтобы увидеть, чего мне не хватает.
Любая помощь будет очень признательна.
У меня есть форма под названием «контакт», и в конце ее я получаю свою заявку
<button class="btn btn-lg btn-light g-recaptcha" data-sitekey="SITE-KEY"
data-callback="onSubmit">Send.</button>
Тогда моя JQuery функция onSubmit:
function onSubmit(token) {
if (($('#contact')).valid()) {
$('#contact').submit();
}
else {
$("#contact").addClass("shake animated"), function() {
$(this).removeClass();
});
grecaptcha.reset();
}
}
AJAX находится в конце JQuery настроек проверки, как показано здесь:
$(document).ready(function() {
$(function () {
$.validator.setDefaults({
errorClass: 'help-block'
});
$("#contact").validate({
rules: {
name: {
required: true,
lettersonly: true
}
},
submitHandler: function () {
$.ajax({
type: "POST",
url: "process.php",
data: $('#contact').serialize(),
success: function () {
$("#fields").prop('disabled', true);
},
error: function () {
$('#msgSubmit').html("Error");
}
});
return false;
}
});
});
});
И моя проверка на стороне сервера:
<?php
$url = "myurl";
if (isset($_SERVER['REQUEST_METHOD']) && ($_SERVER['REQUEST_METHOD']) == 'POST') {
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']==$url) {
$res = post_captcha($_POST['g-recaptcha-response']);
if (!$res['success']) {
echo '<br><p>Error.</p><br>';
} else {
echo 'OK';
}
}
} else {
die();
}
function post_captcha($user_response) {
$fields_string = '';
$fields = array(
'secret' => 'PRIVATE-KEY',
'response' => $user_response
);
foreach($fields as $key=>$value)
$fields_string .= $key . '=' . $value . '&';
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}