User Tools

Site Tools


Translations of this page:
ru:google_recaptcha

Google ReCaptcha

Рекапча удобный вариант обойтись без обычной капчи для проверки чита

Rак сделать:

1. Идем на https://developers.google.com/recaptcha, регаемся и получаем Recaptcha V3 Site key Recaptcha V3 Secret key

2. вписываем эти значения в Rotation - Settings - Social и там же переключаем “Use Captcha on Comments?”

Recaptcha for comments

Суть рекапчи в том, что в любой форме добавляется JS код от гугла для проверки чита, и поле куда гугл пишет результат проверки

Пример для страницы комментариев. Добавляем в head следующий код

  <head>
    <title> <!--GALLERY_SLUG--> with reCAPTCHA</title>
     <script src="https://www.google.com/recaptcha/api.js?render=<!--TUBE_RECAPTCHA_SITE_KEY-->"></script>

<script>
function CheckRecaptcha() {
grecaptcha.ready(function() {
    grecaptcha.execute('<!--TUBE_RECAPTCHA_SITE_KEY-->', {action: 'report_form'}).then(function(token) {
       document.add_comment.recaptcha.value = token;
       document.add_comment.submit();
    });
});
}
</script>

тут надо обратить внимание на <!–TUBE_RECAPTCHA_SITE_KEY–>, это ваш Recaptcha V3 Site key (те НЕ секретный код)

и сама форма комментария


<? if ('<!--ERROR-->' != 'OK') echo "error: <!--ERROR-->"; ?>

<FORM name="add_comment" method="POST">
<input type="hidden" name="action" value="add_comment">
<input type="hidden" name="recaptcha" id="recaptcha" value=""> Вот сюда гугл запишет ответ

<label>Name:</label> <input class="s_input" type="text" name='username' id='username' value="<?=$user['username']?>">
<br>

 <textarea class="s_text" class="ph2" name='comment' id='comment' rows=5 cols=35 value="Leave Your Comments Here"></textarea>

<input type=button value='Send comment' onClick=CheckRecaptcha()> тут надо обратить внимание что это не submit, а именно button, те форма сабмитится после того как гугл заапрувил ее.
</form>

Recaptcha Anticheat

Есть интересный вариант проверки качества трафа с использованием речапчи от гугла. Суть в том, что гугл пишет какой % трафа он считает нормальным, не ботовым.

На любой странице, но в 99% это конечно будет индекс и страница категории добавляем код

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=<!--TUBE_RECAPTCHA_SITE_KEY-->"></script>

<script>
req_flag = false;
recaptcha_code = '';


if ('<!--RECAPTCHA_MAX_RATE-->') {
    if (Math.random() > '<!--RECAPTCHA_MAX_RATE-->') req_flag = true;
}


grecaptcha.ready(function() {
    grecaptcha.execute('<!--TUBE_RECAPTCHA_SITE_KEY-->', {action: 'index_page'}).then(function(token) {
       recaptcha_code = token;
    });
});


$(document).ready(function(){
	$('.gallery_link').each(function() {
		$(this).click(function(){
		    if (req_flag || recaptcha_code === '') return;
		    req_flag = true;

        	$.post('/',
	        {
                'action': 'check_recaptcha',
                'recaptcha_code': recaptcha_code,
    	    },
	        function (data) {
	  	        
	        }
	        );
		    
		});
	});


});



</script>

на линках на галеры или категории добавляем class='gallery_link' как в примере ниже

<thumb num=1-10>
<a class='gallery_link' href='/gallery/<!--GALLERY_SLUG-->/index.html'> <!--GALLERY_ID--> </a> <br>
</thumb>

можно конечно gallery_link заменить на что угодно, смысл в том что в JS мы вешаем событие по определению чита на эти линки $('.gallery_link').each(function() {

4. в админке идем в Settings - layouts - и включаем колонку Google Recaptcha

Все, теперь можно видеть процент хорошего трафа в Trade - колонка recaptcha

PS тут надо обратить внимание что бесплатно у гугла только 1300 в час поэтому проверяются не все хиты, а выборчно (RECAPTCHA_MAX_RATE), если вы готовы доплатить гуглу за проверку - пишите в суппорт, доделаем версию без ограничения.

ru/google_recaptcha.txt · Last modified: 2023/01/09 03:06 by admin