как установить reCaptcha на свой сайт

232
17 сентября 2017, 02:12

Всем привет, возникла следующая проблема по вопросу безопасности на сайте. Хотелось бы использовать стандартную reCaptcha'у от гугла. Всё хорошо, на сайт встали два кода

<div class="g-recaptcha"    data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"></div>
       <script src='https://www.google.com/recaptcha/api.js'></script>
  • Собственно, первое это сама формочка, а второе, подключаемый модуль. Апи ключ можете использовать на любом сервере, т.к. это тестовый ключ. Сайт сделан по MVC , всё взаимосвязано и отлично пашет. НО, что нужно передавать в POST запросе? Как данные приходят с этого div блока?

Кусок кода который я использовал :

Форма

<div id="register">
    <div class="register">
        <input type="text" id="regLogin">
        <input type="email" id="regMail">
        <input type="password" id="regPassword">
        <input type="password" id="regRepeatPassword">
        <div class="g-recaptcha" data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"></div>
        <input type="button" onclick="Register();" value="зарегистрироваться">
    </div>
</div>
<script src='https://www.google.com/recaptcha/api.js'></script>

Сам php код

function registerAction(){
foreach ($_POST as $key => $value) {
    echo '<p><strong>' . $key.':</strong> '.$value.'</p>';
}
// ваш секретный ключ
$secret = "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI";
// пустой ответ
$response = null;
// проверка секретного ключа
$reCaptcha = new ReCaptcha($secret);

if ($_POST["g-recaptcha-response"]) 
{
    $response = $reCaptcha->verifyResponse(
    $_SERVER["REMOTE_ADDR"],
    $_POST["g-recaptcha-response"]);
}else{echo "error";}
    return;
}

Я так понял это стандартная операция для проверки этой капчи. Но что должно приходить в POST и как организовать чтобы это дело приходило мне в action Если всё слепить в одну страницу, то работает. Но такой выход крайне не приятен особеено в моём случае. Что передавать в POST , как его ловить, и что ловить в нём. Вот кусок JS кода, который обрабатывает данные и передаёт в экшен.

JS

function Register(){
    var login       =   $(document.getElementById('regLogin')).val();
    var email       =   $(document.getElementById('regEmail')).val();
    var regPassword =   $(document.getElementById('regPassword')).val();
    var regPassword2=   $(document.getElementById('regPassword2')).val();
    //var reCaptcha =   $(document.getElementById('regPassword2')).val();
    var postData        = {login: login, email: email, regPassword: regPassword, regPassword2: regPassword2};
    $.ajax ({
        type: 'POST',
        url: "?controller=register&action=register",
        data: postData,
        dataType: 'json',
        success: function(data)
        {
            if (data['success']) {
                alert(data['message']);
            }else{
                alert(data['message']);
            }
        }
    });
}

Как вообще организовать тут капчу? Всем заранее СПАСИБО!!!

READ ALSO
индексировать сайт и обойти verify страница

индексировать сайт и обойти verify страница

На сайте нужен verify 18+ но проблема такая google bot, yandex bot будут сканировать только этот страница (verifyphp) как могу дать им доступ на сайт без verify чтобы...

252
Выводит результат одной строкой PHP query

Выводит результат одной строкой PHP query

Хочу вывести все содержимое ссылок по отдельности, а он соединяет и выводит одной большой строкой

174
Почему не работает регулярка на php?

Почему не работает регулярка на php?

Регулярка на php должна находить слово "культурист" либо в начале строки, либо в конце либо, если оно в середине окружено круглыми скобками...

248
yii2 передать параметры в get запрос activerecord

yii2 передать параметры в get запрос activerecord

Привет Нужно сделать выборку из БД по критериемт

280