Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Как сделать капчу "Я не Робот" от гугла. Краткая инструкция
Идете в гугл: https://www.google.com/recaptcha/admin и получаете две константы. В конфигурации прописываете две переменные:// Ключ (Добавьте этот ключ в HTML-код сайта.)
define('reCAPTCHA_sitekey','6Lexxxx'); // если неопределена, то запрашиваться не будет
// Секретный ключ (Этот ключ нужен для связи между вашим сайтом и Google. Никому его не сообщайте)
define('reCAPTCHA_secretkey','6Lexxx'); // получить здесь https://www.google.com/recaptcha/admin
Сторона клиента. Форма ввода капчи
<?if(defined('reCAPTCHA_sitekey')){?>
<script>
var verifyGrecaptcha=undefined;
var verifyCallback = function(response) {
verifyGrecaptcha=response;
};
</script>
<div class="g-recaptcha" data-sitekey="<?=reCAPTCHA_sitekey?>" data-callback="verifyCallback" data-expired-callback="verifyCallback"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<?}else{?>
<script>
var verifyGrecaptcha=1;
</script>
<?}?>
при отправке формы проверяю:
if(verifyGrecaptcha==undefined){alert('Подтвердите, что Вы - не робот!');return false;}
Проверка на сервере правильности ввода капчи
Параметры и документация здесь:- https://developers.google.com/recaptcha/docs/verify
- https://developers.google.com/recaptcha/docs/display#render_param
<?
list($headers,$body,$info)=ReadUrl::ReadWithHeader('https://www.google.com/recaptcha/api/siteverify',
'secret='.reCAPTCHA_secretkey.
'&response='.urlencode($_POST['g-recaptcha-response']).
'&remoteip='.getenv('REMOTE_ADDR'),
['cache'=>0,'timeout'=>10]);
if($body){
$recaptcha =json_decode($body,!0);
if(!empty($recaptcha['success'])&&$recaptcha['success']){
// Здесь все отлично!!!
}else{
error("Неверная капча. Попробуйте ещё раз.");
}
}else{
SendAdminMail('Capcha error', "headers=".var_export($headers,!0)."\nbody= ".var_export($body,!0)."\ninfo=".var_export($info,!0));
error("Не удалось проверить капчу. Попробуйте ещё раз.");
}
?>
.
Прокомментировать/Отблагодарить