Foros del Web » Programando para Internet » Javascript » Frameworks JS »

captcha

Estas en el tema de captcha en el foro de Frameworks JS en Foros del Web. Hola amigos disculpen si este mensaje esta en el foro equivocado... Estaba intentando aplicar el captcha para un formulario de contactos de admision con php, ...
  #1 (permalink)  
Antiguo 19/05/2009, 10:08
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
captcha

Hola amigos disculpen si este mensaje esta en el foro equivocado...

Estaba intentando aplicar el captcha para un formulario de contactos de admision con php, la clase captcha me lo baje en http://www.phpcaptcha.org/download/ y bueno, probe el ejemplo y funcionaba bien, pero el formulario de mi caso es un poquito diferente.

El formulario lo valido y lo envio con ajax, el problema es al validar ya que un a vez que se ha comparado todos los inputs envia el correo y no lee el captcha. Como validaria ese formulario y considerando ese captcha? alguien ha usado esa libreria para que me pueda ayudar? aqui le pongo mi codigo:

Formulario:
Código PHP:
<?php
session_start
();
?>
 <?php
if (empty($_POST)) { 
?>
<div id="resultado_envio">
            <form name="frmcontacto" id="frmcontacto" onSubmit="enviaContacto(); return false"><table width="385" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td align="right" class="fontForm">Nombre o Nick :</td>
                <td align="right"><input name="nombre" type="text" class="textboxForm" id="nombre" onFocus="this.style.background='#FEF3CD';" onBlur="this.style.background='#FFFFFF';" maxlength="100"/></td>
              </tr>
              <tr>
                <td height="10" colspan="2"></td>
                </tr>
              <tr>
                <td align="right" class="fontForm">E-mail :</td>
                <td align="right"><input name="email" type="text" class="textboxForm" id="email" maxlength="100" onFocus="this.style.background='#FEF3CD';" onBlur="this.style.background='#FFFFFF';" /></td>
              </tr>
              <tr>
                <td height="10" colspan="2"></td>
                </tr>
              <tr>
                <td align="right" class="fontForm">Edad :</td>
                <td align="center"><?php llenarFecha(); ?></td>
              </tr>
              <tr>
                <td height="10" colspan="2"></td>
                </tr>
              <tr>
                <td align="right" class="fontForm">Pais :</td>
                <td align="right"><input name="pais" type="text" class="textboxForm" id="pais" maxlength="100" onFocus="this.style.background='#FEF3CD';" onBlur="this.style.background='#FFFFFF';" /></td>
              </tr>
              <tr>
                <td height="10" colspan="2"></td>
                </tr>
              <tr>
                <td align="right" class="fontForm">Mensaje :</td>
                <td align="right"><textarea name="mensaje" rows="5" class="textboxArea" id="mensaje" onFocus="this.style.background='#FEF3CD';" onBlur="this.style.background='#FFFFFF';"></textarea></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td align="right" class="fontForm">Ingrese el codigo : </td>
                <td align="center"><img src="includes/securimage_show.php?sid=<?php echo md5(uniqid(time())); ?>"><br /><br /><input type="text" name="code" id="code" style="height:18px; width:170px; font-family:Tahoma; font-size:12px; border:#FE9900 solid 1px; padding-left:2px;" /></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td align="center"><table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td><input type="reset" name="borra" value="BORRAR" class="btnForm" /></td>
                    <td width="20">&nbsp;</td>
                    <td><input type="submit" name="envia" id="envia" value="ENVIAR" class="btnForm" /></td>
                  </tr>
                </table></td>
              </tr>
            </table>
            </form>    
</div>
<?php
} else { //form is posted
  
include("includes/securimage.php");
  
$img = new Securimage();
  
$valid $img->check($_POST['code']);

  if(
$valid == true) {
    echo 
"<center>Thanks, you entered the correct code.</center>";
  } else {
    echo 
"<center>Sorry, the code you entered was invalid.  <a href=\"javascript:history.go(-1)\">Go back</a> to try again.</center>";
  }
}
?>
ajax:

Código:
function enviaContacto(){
	var c = document.getElementById('resultado_envio');
	var nombre = document.frmcontacto.nombre.value;

               if(nombre.length == 0){
		alert('El campo Nombre es necesario para este proceso.');
		document.frmcontacto.nombre.focus();
		return false;
	}
ajax=nuevoAjax();
	c.innerHTML = '<p style="text-align:center;color:#FFFFFF; font-size:10px">Enviando...<br><img src="images/sending.gif" width="43" height="11" align="absmiddle"></p>';
	ajax.open("POST", "envia_mail.php",true);
	ajax.onreadystatechange=function(){
		if (ajax.readyState==4) {
			c.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("nombre="+nombre+"&email="+email+"&dia="+dia+"&mes="+mes+"&ano="+ano+"&pais="+pais+"&mensaje="+mensaje+"&control=enviado");
}
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 20/05/2009, 08:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: captcha

Hola:

Empecé a leer el código, pero pensé... esto es absurdo... el encanto de los captcha es que los formularios se envíen, y "casquen"...

De todos modos, los captcha son cosas adicionales, usando variables de sesión, que no deberán fallar sin el típico session_star() de php o similares...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 08:34.