
08/12/2015, 16:26
|
| | Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 14 años, 3 meses Puntos: 1 | |
validacion de captcha (php) Hola amigos gusto de saludarlos, queria ver si alguien me hecha una ayudadita, necesito validar el reCAPTCHA de google (el de no soy robot y que hace seleccionar imagenes) con el codigo que tengo me llega bien al email, pero creo que no esta funcionando la validacion porque intente enviar el formulario sin seleccionar el captcha y lo envia igual, o sea no me muestra nada si envio el form sin seleccionar el captcha cuando lo logico es que si el captcha no es valido me muestre un mensaje o algo y no envie el formulario...
Mi codigo php que uso para procesar el form es este: Código PHP: <?php
//reCAPTCHA GOOGLE
require_once '../script/ReCaptcha/ReCaptcha.php';
require_once '../script/ReCaptcha/RequestMethod.php';
require_once '../script/ReCaptcha/RequestParameters.php';
require_once '../script/ReCaptcha/Response.php';
require_once '../script/ReCaptcha/RequestMethod/Curl.php';
require_once '../script/ReCaptcha/RequestMethod/CurlPost.php';
require_once '../script/ReCaptcha/RequestMethod/Post.php';
require_once '../script/ReCaptcha/RequestMethod/Socket.php';
require_once '../script/ReCaptcha/RequestMethod/SocketPost.php';
if($_POST['Enviar']){
$nombre=$_POST["nombre"]; //Input Nombre
$apellido=$_POST["apellido"]; //input apellido
$telefono=$_POST["fono"]; // input fono
$direccion=$_POST["direccion"]; // input direccion
$correo=$_POST["email"]; // input direccion
$asunto=$_POST["asunto"]; // select asunto
$contenido=$_POST["comentario"]; //textarea mensaje
$recaptcha = new ReCaptchaReCaptcha("6Ld58P4SAAAAAC9pu3NFIKz9Lc8JVfqn0SfvEclq");
$respuesta = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if($respuesta->isSuccess()){
//si esta ok post, Recogemos las variables desde el formulario
//Validamos que no hay campos vacios
if(empty($_POST["nombre"])){
echo "Debe Ingresar su Nombre";
} else if (empty($_POST["apellido"])){
echo "Debe Ingresar su Apellido";
} else if(empty($_POST["fono"])){
echo "Debe Ingresar Telefono";
} else if(empty($_POST["direccion"])){
echo "Debe Ingresar su Dirección";
} else if(empty($_POST["email"])){
echo "No ha ingresado email";
} else if (empty($_POST["asunto"])){
echo "Debe Seleccionar Asunto";
} else if (empty($_POST["mensaje"])){
echo "Debe Escribir su Mensaje/Consulta";
} else{
//Si pasó validaciones ejecutar la funcion enviar_correo
envia_correo();
}
exit;
}else{
echo 'No ha seleccionado el Captcha de Seguridad';
foreach ($respuesta->getErrorCodes() as $error_code) {
echo '<tt>' . $error_code . '</tt> ';
}
exit;
}
}
function envia_correo(){
//Variables
$correo_destino='[email protected]'; //Correo al que se enviara el formulario
$nombre=$_POST["nombre"]; //Input Nombre
$apellido=$_POST["apellido"]; //input apellido
$telefono=$_POST["fono"]; // input fono
$direccion=$_POST["direccion"]; // input direccion
$correo=$_POST["email"]; // input direccion
$asunto=$_POST["asunto"]; // select asunto
$contenido=$_POST["comentario"]; //textarea mensaje
//Creacion de Mensaje a enviar al Email
$mensaje="
Mensaje enviado desde Formulario de Contacto Web Dekoplus:
Asunto del Mensaje: $asunto
Enviado por: $nombre $apellido
Telefono: $telefono
Dirección: $correo
Dirección: $direccion
Mensaje: $contenido
";
//Confirmación de Envio
if(mail($correo_destino,"Formulario Contacto Dekoplus","$mensaje")){
//si se cumple
echo "<div class='alert alert-success alert-dismissable'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<p class='principal'><strong>¡GRACIAS POR CONTACTARNOS!</strong>
Su mensaje ha sido enviado con exito..Le responderemos a la brevedad posible.</p>
</div>";
//Redireccionamos al index
}else{
//si falla el envio
echo "<div class='alert alert-danger alert-dismissable'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<p class='principal'><strong>ERROR:</strong>
No hemos Podido Enviar Su Mensaje..Intente mas tarde.</p>
</div>";
}
}
?> y el .js que uso para validar los campos es este:
Código:
/*===
Validacion Formulario Contacto
===*/
$("#formulario_contacto").validate({
/*Declaramos las reglas de validacion
*Reglas:
*required:true -> Campo Requerido
*maxlength:2 -> Maximo de Caracteres (Se debe crear el mensaje en 'messages')
*minlength:2 -> Minimo de Caracteres (Se debe crear el mensaje en 'messages')
*
*/
debug: false,
rules:{
nombre:{required:true},//validacion para el input nombre
apellido:{required:true},
fono:{required:true},//validacion para el input telefono
direccion:{required:true},//validacion para el input direccion
email:{required:true, email:true},//validacion para el input email
asunto:{required:true},//validacion para el Select Asunto
comentario:{required:true},//validacion para el input comentario
},
messages:{
nombre:{ required:"Debe Ingresar su Nombre"},//Mensaje para el input nombre
apellido:{required:"Debe ingresar su Apellido"},
fono:{ required:"Debe Ingresar Numero Telefonico"},//Mensaje para el input Telefono
direccion: {required:"Debe ingresar su dirección"},
email:{ required:"Debe Ingresar Email", email:"Email no Valido"},//Mensaje para el input email
asunto:{ required:"Debe Seleccionar Asunto"},//Mensaje para el Select Asunto
comentario:{ required:"Debe Ingresar Comentario o Consulta"},//Mensaje para el input comentario
},
submitHandler: function(form) {
// do other stuff for a valid form
$.post('../script/formContacto.php', $("#formulario_contacto").serialize(),
function(data) {
$('#resultado').html(data);
$('#resultado').fadeOut(10000); /*CIERRE AUTOMATICO DE VENTANA*/
});
$("#formulario_contacto")[0].reset(); //Resetea el Formulario
}
});
|