PHP - VALIDAR RECAPTCHA V2 GOOGLE

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDAR RECAPTCHA V2 GOOGLE

Publicado por Almudena (6 intervenciones) el 11/04/2020 10:56:53
Hola buenas llevo un par de días intentando poner el recaptcha v2 de en una web algo que supuestamende debería de ser sencillo pero que no logro, no logro validarlo os cuento lo que tengo.
archivo contact.html donde tengo el formulario y declaro

entre el head con los otros script

1
2
<!--script recaptcha-->
<script src='https://www.google.com/recaptcha/api.js'></script>

luego el formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="envio2.php" method="post">
    <div class="form-group">
      <input type="text" class="form-control" placeholder="Nombre y Apellidos" name="nombre" required>
    </div>
    <div class="form-group">
      <input type="text" class="form-control" placeholder="Dirección Email" name="correo" required>
    </div>
    <div class="form-group">
      <input type="text" class="form-control" placeholder="Asunto" name="asunto" required>
    </div>
 
</div>
</div>
<div class="col-md-6 col-sm-12">
<div class="block">
 
    <div class="form-group">
      <textarea class="form-control" rows="3" placeholder="Mensaje" name="mensaje" required></textarea>
    </div>
     <div class="g-recaptcha" data-sitekey="6Lc_PegUAAAAAMolERNXD2Od3G5q3bKzCVgqIo-K"></div><br/><br/>
 
    <button class="btn btn-default" value="ENVIAR" type="submit">Enviar Mensaje</button>
</form>


por otra parte en el archivo envio2.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
require_once('recaptchalib.php');
 
ini_set('display_errors',1);
$destino="miemail";
$nombre = $_POST['nombre'];
$correo = $_POST['correo'];
$asunto = $_POST['asunto'];
$mensaje = $_POST['mensaje'];
 
$contenido = "Nombre: " . $nombre . "\nCorreo: " . $correo . "\nAsunto: " . $asunto . "\nMensaje: " . $mensaje;
mail($destino, "Contacto", $contenido);
 
$secret = "miclavesecreta";
 
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $secret,
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']
);
 
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);
 
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$response = curl_exec($ch);
curl_close($ch);
}
 
$jsonResponse = json_decode($response);
 
if ($jsonResponse->success === true) {
 
// Si el código es correcto, seguimos procesando el formulario como siempre
    echo "<script>alert('Su mensaje ha sido enviado correctamente')</script>";
    echo "<script>location.href='index.html';</script>";
 
} else {
 
// Si el código no es válido, lanzamos mensaje de error al usuario
 
echo "<script>alert('verifique el captcha')</script>";
echo "<script>location.href='contact.html';</script>";
}
 
?>


Así tengo declarado todo todo es visible pero siempre me devuelve que esta mal que verifique el captcha, he probado de varias maneras y siempre me pasa lo mismo, o lo envía siempre o siempre me pide que verifique captcha

a ver si podeis echarme una mano, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder