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> </td>
<td> </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> </td>
<td> </td>
</tr>
<tr>
<td> </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"> </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>";
}
}
?>
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"); }