Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2016, 01:36
ica1977
 
Fecha de Ingreso: febrero-2016
Mensajes: 36
Antigüedad: 8 años, 2 meses
Puntos: 2
Recaptcha google, "Nos soy un robot"

Intentando integrar este recaptcha en mi formulario y pagina de validación, no he tenido narices a que me funcione. He mirado por todo la red, y por aqui por los foros, pero no habido manera de que quiera funcionar.

En la parte del formulario tenemos la llamada al script de google y el div propio del dialogo de captcha dentro del form.

Y en la pagina de validación está implementado la validación por el metodo POST con el siguiente codigo:
Código PHP:
Ver original
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $secretkey = "Mi clave secreta";
  4. $captcha=$_POST[‘g-recaptcha-response’];
  5. $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretkey.'&response='.$captcha.'&remoteip='.$ip);
  6.  
  7. var_dump($_POST);
  8. echo"<br/><br/>";
  9. var_dump($response);
  10. echo"<br/><br/>";
  11. $responsekeys = json_decode($response, true);
  12. echo"<br/><br/>";
  13. var_dump($responsekeys);
  14. if($responsekeys[“success”] === true){
  15.     if (isset($_POST['contactar'])) {
  16.             $email_to = "mi correo";
  17.             $email_subject = "Contacto desde la web ";
  18.             // Aquí validamos los datos ingresados por el usuario
  19.             if ((!isset($_POST['userName'])) || (!isset($_POST['userEmail'])) || (!isset($_POST['Mensaje']))) {
  20.                 include ($_SERVER['DOCUMENT_ROOT']) . '/includes/header.php';
  21.                 include ($_SERVER['DOCUMENT_ROOT']) . '/includes/enviofallido.php';
  22.                 include ($_SERVER['DOCUMENT_ROOT']) . '/includes/footer.php';
  23.                 die("No ha rellenado todos los campos del formulario");
  24.             }
  25.             $username=htmlentities($_POST['userName']);
  26.             $username=strip_tags($username);
  27.             $useremail=htmlentities($_POST['userEmail']);
  28.             $useremail=strip_tags($useremail);
  29.             $mensaje=htmlentities($mensaje);
  30.             $mensaje=strip_tags($mensaje);
  31.             $email_message = "Detalles del formulario de contacto:\n\n";
  32.             $email_message .= "Nombre: " . $username . "\n";
  33.             $email_message .= "E-mail: " . $useremail . "\n";
  34.             $email_message .= "Mensaje: " . $mensaje . "\n\n";
  35.             // Ahora se envía el e-mail usando la función mail() de PHP
  36.             $headers = 'From: '.$email_to."\r\n".'Reply-To: '.$useremail."\r\n" .'X-Mailer: PHP/' . phpversion();
  37.             @mail($email_to, $email_subject, $email_message, $headers);
  38.             include ($_SERVER['DOCUMENT_ROOT']).'/includes/header.php';
  39.             include ($_SERVER['DOCUMENT_ROOT']).'/includes/enviocorrecto.php';
  40.             include ($_SERVER['DOCUMENT_ROOT']).'/includes/footer.php';
  41.             }
  42. }
  43. else{
  44. die ("Ha habido un error con la verificación captcha introducida");
  45. }

Este mismo codigo funciona en otros sitios, pero yo no consigo que me funcione. los dominios en google estan configurados y las claves estan correctamente introducidas.
El error es que siempre me devuelve false la función file_get_contents.
Alguien tiene alguna pista?