Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2024, 16:52   #1
DanDiablo
Пользователь
 
Аватар для DanDiablo
 
Регистрация: 25.08.2015
Сообщений: 60
Вопрос Привязать yandex капчу к отправке формы

Доброго времени суток!

Я - тупой, к сожалению, ....

Вот ajax запрос с проверкой на JQuery validate;

Код:

	$('#myForm').validate({

		rules:{

			name_user_forms:{

				required: true,

				minlength:4

			},

			tel_user_forms:{

				required: true

			},

			user_email_forms:{
				
				required:true,

				email: true
			},

			user_tema_forms:{

				required:true,

				minlength:8

			},

			user_text_forms:{

				required:true,

				minlength:10

			},

			user_yes_forms:{

				required:true

			}
		},

		submitHandler: function(form) {
			$.ajax({
			url: 'formsMail.php',
			type: 'POST',
			dataType: 'html',
			data: $(form).serialize(),
		})
		.done(function() {
			
			$('#result_form').text('Сообщение отправлено!');

			$("#myForm").trigger("reset");

		})

		.fail(function() {
			
			$('#result_form').text('Ошибка, что то сломалось!');

			$("#myForm").trigger("reset");

		});

        	return false;
    	}

	});

	$.validator.addMethod(
  		"regex",
  		function(value, element, regexp) {
    	var re = new RegExp(regexp);
    	return this.optional(element) || re.test(value);
  }

);

	$("#myFormName").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });

	$("#myFormTema").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });

	$("#myFormMessage").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });
И он работает, я проверял.


И вот код для проверки ответа пользователя на капчу из оф. документации, отправка GET запроса:

Код:
const https = require('https'),
    querystring = require('querystring');

const SMARTCAPTCHA_SERVER_KEY = "<ключ_сервера>";


function check_captcha(token, callback) {
    const options = {
        hostname: 'smartcaptcha.yandexcloud.net',
        port: 443,
        path: '/validate?' + querystring.stringify({
            secret: SMARTCAPTCHA_SERVER_KEY,
            token: token,
            ip: '<IP-адрес_пользователя>', // Способ получения IP-адреса пользователя зависит от вашего фреймворка и прокси.
        }),
        method: 'GET',
    };
    const req = https.request(options, (res) => {
        res.on('data', (content) => {
            if (res.statusCode !== 200) {
                console.error(`Allow access due to an error: code=${res.statusCode}; message=${content}`);
                callback(true);
                return;
            }
            callback(JSON.parse(content).status === 'ok');
        });
    });
    req.on('error', (error) => {
        console.error(error);
        callback(true);
    });
    req.end();
}


let token = "<токен>";
check_captcha(token, (passed) => {
    if (passed) {
        console.log("Passed");
    } else {
        console.log("Robot");
    }
});
И эти два кода работают отдельно друг от друга...

А как сделать, что бы отправка почты происходила после проверки капчи?

У кого есть опыт, расскажите дураку, пожалуйста!

Благодарю!
DanDiablo вне форума Ответить с цитированием
Старый 31.07.2024, 07:50   #2
DanDiablo
Пользователь
 
Аватар для DanDiablo
 
Регистрация: 25.08.2015
Сообщений: 60
По умолчанию

Блин, ни кто не пользовался? Жаль...
DanDiablo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО] При отправке данных из формы, (при нажатии кнопочки "Отправить") из фрейма пропадает буквально все. И поля , и названия полей, и фон, остается чистое, белое поле Gronik HTML и CSS 8 07.10.2018 00:16
надо привязать php сайт к базе данных Access и что бы при заполнение формы на сайте данные сохранялись в базе Алёна_))) Microsoft Office Access 2 20.06.2012 12:24
Зависание формы при отправке данных в интернет NickForm Общие вопросы Delphi 4 06.12.2011 17:50
как привязать размеры содержимого формы к размерам самой формы acid_bmstu Общие вопросы Delphi 4 05.02.2010 05:02
Как привязать появление формы к активной ячейке? solely-unique Microsoft Office Excel 1 28.03.2009 23:36