Foros del Web » Programando para Internet » PHP »

Formulario con reCaptcha

Estas en el tema de Formulario con reCaptcha en el foro de PHP en Foros del Web. Buenas tardes foro, tengo el típico formulario de contacto al cual le he insertado un recaptcha, cuando se pulsa el boton de enviar se llama ...
  #1 (permalink)  
Antiguo 25/03/2013, 11:58
 
Fecha de Ingreso: julio-2011
Mensajes: 63
Antigüedad: 12 años, 9 meses
Puntos: 2
Formulario con reCaptcha

Buenas tardes foro,

tengo el típico formulario de contacto al cual le he insertado un recaptcha, cuando se pulsa el boton de enviar se llama a un fichero php el cual valida los campos y en funcion de si son correctos o no se retorna una respuesta al php del formulario, en dicho php se emprime un mensaje de exito si los campos son correctos y uno de fallo si son incorectos.

El problema que tengo es que el formulario se encuentra en la parte de abajo de la pagina y cuando la pagina se recarga se muestra el mensaje abajo del formulario y por lo tanto el usuario no llega a ver el mensaje al no ser que haga scroll..

Me gustaria que la pagina recargara pero que se viera el formulario en pantalla..

Leyendo he barajado la posibilidad de hacerlo en ajax, ya que entiendo que asi la pagina no recargaria y por lo tanto el mensaje se imprimiria debajo del formulario y el usuario siempre llegaria ver el mensaje que es lo que ando buscando..

Existe alguna forma de conseguir esto sin hacer uso de Ajax? He estado probando a implementarlo usando xajax y no lo he conseguido apesar queno parece complicado..

Alguna sugerencia??

Salu2
  #2 (permalink)  
Antiguo 25/03/2013, 12:03
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Formulario con reCaptcha

Creo entender, pero aun así es un tanto abstracto tu planteamiento... eso depende del diseño de tu form y como haces uso de tu script... pero si te parece que AJAX o JQUERY puede resolver tu problema, adelante no?

En PHP si o si tendrás que enviar los datos a algún lugar, y por lo general la estructura y funcionamiento de FORM hace que al action + el submit refresquen la página...

Antes que una funcion PHP tendras que usar unos trucos de anclas html... aun así.. SIN VER TU CODE es muy complicado.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 26/03/2013, 12:12
 
Fecha de Ingreso: julio-2011
Mensajes: 63
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Formulario con reCaptcha

Ok gracias por la respuesta, voy a poner el codigo para que lo veais mejor:

el formulario seria algo asi:
Código HTML:
Ver original
  1. <form name="mail_frm" action="enviar_mail_mant_inf_empresas.php" method="post" >
  2.  
  3. .....
  4.  
  5. <input type="button" name="enviar_btn" value="Enviar" /><br />

El javascript que valida:

Código Javascript:
Ver original
  1. <script>
  2.             function validarForm(){
  3.                 var verificar=true;
  4.                
  5.                 var expRegEmail= /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/  ;
  6.                
  7.                 if(!document.mail_frm.email_txt.value){
  8.                     alert("El campo 'Email' es requerido");
  9.                     document.mail_frm.email_txt.focus();
  10.                     verificar=false;
  11.                    
  12.                 } else if(!expRegEmail.exec(document.mail_frm.email_txt.value)){
  13.                     alert("El campo 'Email' no es valido");
  14.                     document.mail_frm.mail_txt.focus();
  15.                     verificar=false;
  16.  
  17.                 } else if(document.mail_frm.telefono_txt.value.length!=9 || isNaN(document.mail_frm.telefono_txt.value) ){
  18.                     alert("El campo 'Telefono' no es valido");
  19.                     document.mail_frm.telefono_txt.focus();
  20.                     verificar=false;
  21.                    
  22.                 } else if(document.mail_frm.nombre_txt.value==""){
  23.                     alert("El campo 'Nombre' es requerido");
  24.                     document.mail_frm.nombre_txt.focus();
  25.                     verificar=false;
  26.                    
  27.                
  28.                 }
  29.                
  30.                
  31.                
  32.                if(verificar){
  33.                    
  34.                     document.mail_frm.submit();
  35.                    
  36.                 }
  37.             }
  38.            
  39.             window.onload=function(){
  40.                 document.mail_frm.enviar_btn.onclick=validarForm;
  41.             }
  42.    
  43. </script>

Y el fichero que comprueba que la validacion del captcha es erronea es algo asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.   require_once('recaptchalib.php');
  5.   $privatekey = "***************************";
  6.   $resp = recaptcha_check_answer ($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
  7.  
  8.   if (!$resp->is_valid) {
  9.     $respuesta = "El codigo Captcha no coincide";
  10.     header("Location: mantenimiento_informatico_empresas_valencia.php?respuesta=$respuesta");
  11.   } else {
  12. .....
  13. }

El problema es que cuando este fichero devuelve la respuesta a mantenimiento_informatico_empresas_valencia.php pues dicha pagina debria cargar a mitad de pagina en vez de dejar la parte de arriba visible.

Como lo veis ahora??

Gracias por los aportes, se agradece el interes.

Un saludo.

Etiquetas: formulairo, recaptcha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:51.