Una vez dentro, en la parte derecha otra vez pulsamos el botón +
Y aparece un panel donde rellenar los datos del dominio a proteger con recaptcha
En mi caso el dominio es arenols.com, mi dominio personal con información sobre mis servicios como freelance. Y elijo la segunda opción “Prueba (v2)” con la casilla de verificación “No soy un robot” y saldrá en el formulario algo similar a esto:
Si necesitas mas ayuda sobre recaptcha puedes revisar la ayuda https://developers.google.com/recaptcha/intro?hl=es-419
Una vez puestos los datos pulsar enviar y aparecerá una ventana con las claves a utilizar en tu código.
El primer código es para poner en el HTML y el segundo en el PHP, puedes obtener mas información en la ayuda:
- https://developers.google.com/recaptcha/docs/v3?hl=es-419
- https://developers.google.com/recaptcha/intro?hl=es-419
Y una vez hecho esto podemos ir a la configuración o a las estadísticas, que aunque ponga Analitics no es el portal de analitics de google sino estadísticas de uso de recaptcha.
Ahora toca programarlo en el formulario utilizando las claves que hemos generado.
En el formulario hay que poner al principio el siguiente código, yo lo pongo antes de la etiqueta form
<script src='https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer'><</script>
Y al final del formulario, antes de la etiqueta input type=submit este otro código.
<div id=recap class="g-recaptcha" data-sitekey="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"></div>
El código del campo data-sitekey es el que antes hemos obtenido en el proceso anterior y es el que pone clave de sitio web
Ahora vamos al código PHP y lo primero que tenemos que hacer es comprobar si el pros
if ( isset( $_POST['g-recaptcha-response']) && !empty( $_POST['g-recaptcha-response']))
{
$curl = new \APP\Libraries\CurlClass();
$recaptcha = $data_post['g-recaptcha-response'];
$google_url = "https://www.google.com/recaptcha/api/siteverify";
$secret = 'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSs';
$ip = $_SERVER['REMOTE_ADDR'];
$data_curl['url'] = $google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
# Con una clase para enviar peticiones CURL podemos comprobar si captcha funciona
$res = $curl->Curl( $data_curl);
$res_data = json_decode( $res['data']);
if ( $res_data->success)
{
# Cosas a hacer porque todo ha ido bien. Enviar mail, guardar en base de datos
}
else
{
# Cosas a hacer si ha ido mal
}
}
Si no tenéis una función que envié peticiones Curl puedes copiar esta:
public static function Curl( $data)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $data['url']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
if ( isset( $data['username']))
{
curl_setopt($curl, CURLOPT_USERPWD, $data['username'] . ":" . $data['password']);
}
if ( isset( $data['post']))
{
curl_setopt($curl, CURLOPT_POSTFIELDS, $data['post']);
}
$curlData = curl_exec($curl);
$info = curl_getinfo($curl);
$error = curl_error($curl);
curl_close($curl);
return ( [
'data' => $curlData,
'info' => $info,
'error' => $error,
]
);
}
Esta función recibe un array con los datos para enviar peticiones Curl pero solo es necesaria la URL donde conectarse.
Y esto es todo, feliz programming
Saludos
Alex
/
También puede interesarte:
Configurar Laravel Sail para utilizar un MySql externo existente |
||