Hola.
En formulario de contacto me salto la opción Captcha y envía el correo del formulario sin más???? el Captcha como tal funciona ok pero no hace nada en el envió de correo del formulario.
Que código funcionaria para que el correo no se mandara sin completar el ReCaptcha ¿?
<?php
$mail='micorreo@yahoo.es';
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$mensaje = $_POST['mensaje'];
$recaptcha = $_POST['g-recaptcha-responde'];
//$thank="gracias.html";
$message = "
nombre:".$nombre."
apellido:".$apellido."
telefono:".$telefono."
email:".$email."
asunto:".$asunto."
mensaje:".$mensaje."";
if (mail($mail,"Textoooooooooooooooooooooooo",$message))
//Header ("Location: $thank:");
header("Refresh: 3; URL=https://xxxxxxxxxxxxx.es/Emeil%20htlm%20Ok/gracias.html");
//Cambiar remitente correo
$cabeceras="From: <".$to."> \r\n";
$cabeceras.="Reply-To: <".$email."> \r\n";
$cabeceras .= 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: multipart/mixed' ."\r\n";
//$cabeceras .= "From: ".$_POST["mail"]."\r\n";
mail($email, $asunto, $mensaje, $cabeceras);
if(isset($_POST["g-recaptcha-responde"]) && $_POST["g-recaptcha-responde"])
{
var_dump($_POST);
$secret = "6LdvCyoUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST["g-recaptcha-responde"];
$result = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$recaptcha&remoteip=$ip");
echo "<br>";
echo "<br>";
echo "<br>";
var_dump($result);
$array = json_decode($result,TRUE);
echo "<br>";
if($array["success"])
{
echo "Eres humano";
}else{
echo "Eres un robot";
}
}
?>
Un Saludo.
Lo que pasa es que en ésta validación:
if(isset($_POST["g-recaptcha-responde"]) && $_POST["g-recaptcha-responde"])
Si se manda el $_POST["g-recaptcha-responde"] como ="", técnicamente, está cumpliendo ambas condiciones y puede pasar por el form.
Tendrías que validar que el captcha $_POST["g-recaptcha-responde"] fuera igual al validador de éste campo.
Un saludo!
perdona en esto ando muy justo, como tendria que hacer esto que me dices ???
Un Saludo.
Qué estás usando? La validación de google?
Si, esta puesto en el php lo veras
$secret = "6LdvCyoUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
Un Saludo...
puff.. me estaba ilusionado en solucionar este tema, pero se que do parado en la ultima respuesta hace 5 dias je... bueno seguire esperando
Un Saludo...