You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
836 B

<?php
namespace FormGuide\Handlx;
class ReCaptchaValidator
{
private $enabled;
private $secret;
public function __construct()
{
$this->enabled=false;
}
public function isEnabled()
{
return $this->enabled;
}
public function enable($enable)
{
$this->enabled = $enable;
}
public function initSecretKey($key)
{
$this->secret = $key;
}
public function validate()
{
if(empty($_POST['g-recaptcha-response']))
{
return false;
}
$captcha=$_POST['g-recaptcha-response'];
$url =
'https://www.google.com/recaptcha/api/siteverify?secret='.$this->secret.'&response='.$captcha.'&remoteip='.$_SERVER['REMOTE_ADDR'];
$resp_raw = file_get_contents($url);
$response=json_decode($resp_raw, true);
if(!empty($response['success']) && $response['success'])
{
return true;
}
return false;
}
}