reCAPTCHA

burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: reCAPTCHA

Post by burn »

А как при этом сделать чтобы <!--MESSAGE--> выводила что капча не верная ?
admin
Site Admin
Posts: 37242
Joined: Wed Sep 10, 2008 11:43 am

Re: reCAPTCHA

Post by admin »

Если капча неверная $_POST['my_error'] = '.....';

и в темплейте опять же проверяете $_POST['my_error']
Don't forget to run script update
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: reCAPTCHA

Post by burn »

Работает !
Спасибо.
admin
Site Admin
Posts: 37242
Joined: Wed Sep 10, 2008 11:43 am

Re: reCAPTCHA

Post by admin »

NP)
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: reCAPTCHA

Post by ulan »

С выходом рекаптчи3 не появилось желание встроить его в систему нативно? чтобы у вебмастера был выбор или встроенная каптча или рекаптча3?
admin
Site Admin
Posts: 37242
Joined: Wed Sep 10, 2008 11:43 am

Re: reCAPTCHA

Post by admin »

да, хорошая идея, надо добавить
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: reCAPTCHA

Post by ulan »

Будет супер )
Буду тестить
admin
Site Admin
Posts: 37242
Joined: Wed Sep 10, 2008 11:43 am

Re: reCAPTCHA

Post by admin »

попробуем рекапчу 3 на коментах для начала

регаемся на гугле, получаем ключи

в сетингах
Use Captcha on Comments? = recaptcha v3

Recaptcha V3 Site key
Recaptcha V3 Secret key


на странице галеры

<script src="https://www.google.com/recaptcha/api.js?render=SITE KEY!!!!!!!!"></script>
<script>
function CheckRecaptcha() {
grecaptcha.ready(function() {
grecaptcha.execute('SITE KEY!!!!!!!!', {action: 'content_page'}).then(function(token) {
document.add_comment.recaptcha.value = token;
document.add_comment.submit();
});
});
}
</script>


в форме комента тоже поле под рекапчу

<? if ('<!--ERROR-->') echo "<b>error:</b> <!--ERROR-->"; ?>

<FORM name="add_comment" method="POST" onSubmit="CheckRecaptcha(); return false;">
<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='submit' value='Post Comment' >
</form>


как не сложно заметить при сабмите оно запрашивает рекапчу


если тут все ок будет - пойдем внедрять дальше
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: reCAPTCHA

Post by ulan »

Если не трудно можете чуть подсказать
не поиму что не правильно сделал
div class="comments-form" id='add_comment'>
<form name="add_comment" method="POST" onSubmit='CheckRecaptcha(); return false;'>
<div class="r_line">
<textarea name='comment' id='comment' rows=5 cols=35 placeholder="Leave Your Comments Here"></textarea>
</div>
<div class="r_line">
<input type="text" name='username' id='username' value="<?=$user['username']?>" placeholder="Your name">
</div>
<? if ($rot_settings['tube_comment_captcha']) { ?>
<div class="r_line">
<input type="hidden" name="recaptcha" id="recaptcha" value="">
</div>
<div class="r_line">
<input class="post" type='submit' value='Post Comment' onClick='post_comment();' data-badge='inline' />
</div>
<? } ?>
</form>
<div id='comment_error'></div>
</div>

<script src="//google.com/recaptcha/api.js?render=6LfNF78UAAAAANpoI3"></script>
<script>
function CheckRecaptcha() {
grecaptcha.ready(function() {
grecaptcha.execute('6LfNF78UAAAAANpoI3', {action: 'content_page'}).then(function(token) {
document.add_comment.recaptcha.value = token;
document.add_comment.submit();
});
});
}
</script>
<script>
function post_comment() {
$.post(
'/index.php',
{
'action': 'add_comment',
'content_id': '<!--GALLERY_ID-->',
'captcha': $('#captcha').val(),
'username': $('#username').val(),
'comment': $('#comment').val()
},
function(data) {
var t = data.split('|');
if (t[0] == 'ERROR') {
$('#comment_error').text(t[1]);
} else {
$('#comment_error').text(' ');
$('#add_comment').html('Thank you ! Your comment will be reviewed by admin.');
}
}
);
}
</script>

при сабмите просто страница перегружается и все
admin
Site Admin
Posts: 37242
Joined: Wed Sep 10, 2008 11:43 am

Re: reCAPTCHA

Post by admin »

у вас тут намешаны варианты с AJAX постоям и просто сабмитом

сделайте мой вариант как показано выше и от него уже отталкивайтесь, будет проще
Don't forget to run script update
Post Reply