Jump to content

Recommended Posts

Posted

Okay this is one way of upgrading to v2 of recaptcha.

Go here https://github.com/google/recaptcha and scroll down to Direct Download (assuming you don't use composer) and download the package. Once downloaded insert it into:  core/lib/recaptcha-master

Once you have done this go to core/modules/registration/registration.php

# Replace or comment out
require_once CORE_LIB_PATH.'/recaptcha/recaptchalib.php';

# With
require_once CORE_LIB_PATH.'/recaptcha-master/src/autoload.php';

In that same file, scroll down to VerifyData

# Replace all code relating to captcha check with

  // start the error array as false, we dont have any errors yet.
  $error = false;

  // set the configurations for the service to work.
  $secret = Config::Get('RECAPTCHA_PRIVATE_KEY');
  $remoteIp = $_SERVER["REMOTE_ADDR"];
  $gRecaptchaResponse = $_POST['g-recaptcha-response'];
  $recaptcha = new \ReCaptcha\ReCaptcha($secret); 

  // Call the google service and verify the answer provided.
  $resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp);

  // If Response was a success
  if ($resp->isSuccess())
  {
      // No errors; continue
      $this->set('captcha_error', '');
  } 
  else 
  {
      // Set error as true and show error on front-end
      $error = true;
      $this->set('captcha_error', true);
  }

And finally on your registration_mainform.tpl 

<div class="g-recaptcha" data-sitekey="<?php echo Config::Get('RECAPTCHA_PUBLIC_KEY'); ?>"></div>
<script type="text/javascript"
        src="https://www.google.com/recaptcha/api.js?hl=en">
</script>

<!-- Recaptcha V2 -->
<?php if($captcha_error == true)
    echo '<p class="error">Please verify you are human!</p>';
?>

you can make a function for that like v1 but that's up to you. Let me know if this helps you! 

  • 4 weeks later...
Posted

I tried to follow this fix, but it doesn't work, or more likely I am making the edits wrong. You talk about "then scroll down to the "VerifyData" section, but there is 2 sections I see for that and when I make the edits it breaks the reg pages.

Can you write this how-to more clearly please? Show exactly what and where?

  • Nabeel unpinned this topic
Posted

Nabeel,

Thanks for all your help.  I did get it working finally.  I copied and pasted stuff over but after recopying and pasting the data a second time it started working.  So I guess the lesson here is that if you are using a Skin then you may need to modify a file in a different location.

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...