I have been using reCAPTCHA on my site for a while now and suddenly I realized it has stopped to work. The reCAPTCHA is there, however after verifying correctly, the response FAILS which makes the submit of the form fail.
On the client side console, the browser gives an error:
Uncaught (in promise) Invalid Encryption.
I have tried to search for this error but can not find anything similar. After submitting the form, the server side verification in PHP fails. I am not sure if the error above is related, however, it has not been there before.
Example page of client side integration:
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer>
</script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
Server side verification PHP:
$response = json_decode(
file_get_contents(
"https://www.google.com/recaptcha/api/siteverifysecret=MY_SECRET&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR'] ), true );
if($response['success'] == false){
echo "FAIL";
} else {
//do something
}
I have followed the instructions found here.