2014-12-14 2 views
0

У меня есть этот код в моей форме:Google нет CAPTCHA, по-прежнему не показывает текст

<div class="g-recaptcha" data-sitekey="MY_KEY"></div> 

И часть проверки:

// Re captcha part 
    if (isset($_POST['g-recaptcha-response'])){ 
     $captcha = $_POST['g-recaptcha-response']; 
    } 
    if (!$captcha) { 
     redirect('login', 'refresh'); 
    } 

    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=MY_SECRET_KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); 
    // t($response,1); 
    if($response."success" == false) { 
     redirect('login', 'refresh'); 
    } 

Это вроде теперь работает, это мой результат: enter image description here

Когда я нажимаю на этот флажок, мне все равно нужно набрать текст для проверки.

Мне кажется, что щелкнуть по флажке было достаточно?

Я делаю что-то неправильно здесь?

+1

IIRC он показывает старый капчу, если он не уверен, что вы не робот. – MightyPork

+0

Я тестирую это на локальном хосте на своем компьютере, разве это имеет значение? –

+0

Не знаю, я еще не играл с ним. В любом случае, я не думаю, что это ошибка. – MightyPork

ответ

0

Вот как проверить ответ «Нет Captcha», и он всегда показывает мне «один щелчок» окно проверки, даже в локальном хосте:

$g_recaptcha_response = filter_input(INPUT_POST, 'g-recaptcha-response'); 
if (isset($g_recaptcha_response)) { 
    $google = 'https://www.google.com/recaptcha/api/siteverify?secret=' 
      . ZorAuthConfig::RC_SECRET_KEY 
      . '&response=' . $g_recaptcha_response; 
    $google_json = file_get_contents($google); 
    $google_data = json_decode($google_json); 
    // Check reCaptcha response. 
    if (!$google_data->success) { 
     // Do something if robot. 
    } else { 
     // Do something if human. 
    } 
} 

Я реализовал это в маленькой библиотеке, которую я написал в последнее время, так что вы можете проверить это, если вы хотите более подробную информацию: https://github.com/zoran-petrovic-87/ZorAuth

http://zoran87.blogspot.com/2014/12/zorauth-10b-complete-flexible-no.html

0

reCaptcha будет проверять сначала, если вы бот или нет, анализируя движения мыши (и другие вещи).

В случае неудачи теста появится всплывающее окно, в котором вам нужно записать 2 слова, показанные на изображении.

Все это нормально и нормально, но это только проверка на стороне клиента, если вам нужно убедиться, что проверка действительно успешна, а не взломана каким-то образом или что-то еще ... Затем вы отправляете форму, которая будет введите g-recaptcha-response, как и вы, и вы получите окончательное подтверждение от Google в этой строке JSON.

Смежные вопросы