Agregar protección y validación de formularios web con Captcha
Publicado por admin el 26 de junio de 2009 en PHP
Muchas veces tenemos un sitio web de negocios y estamos cansados de recibir spam en la página de Contacto, Contáctenos, o como sea llamada. ¿Es posible evitar el spam? ¿Es possible evitar que las máquinas zombies envien correos? Si, podemos detener estás tácticas.
Usted necesita instalar Captcha, en cual genera una imagen para verificar que es una persona la que está escribiendo realmente el formulario y no un sistema automatizado. Hay muchas librerías para PHP e incluso para páginas .ASPX. Yo recomiendo la librería PHP reCAPTCHA, la cual proporciona una forma simple de instalar CAPTCHA en sus formularios PHP. Esto puede hacer detener a los motores automatizados de spam. Esto funcionará con la API de reCAPTCHA.
Paso # 1: Obtener la librería reCAPTCHA
Visitando el sitio web de reCAPTCHA y registrándose para obtener la API key (esto es gratis). Usted tendrá su llave publica y llave privadas.
Paso # 2: Descargar e instalar reCAPTCHA PHP
Descargar la líbreria reCAPTCHA desde Google code repo:
$ cd /tmp
$ wget http://recaptcha.googlecode.com/files/recaptcha-php-1.10.zip
Unzip recaptcha-php-1.10.zip, ingresando:
$ unzip recaptcha-php-1.10.zip
Finalmente, copiar recaptchalib.php al directorio donde usted tiene sus formularios web. Por ejemplo: si usted posee la página contacto.php en /var/www/html, entonces debe copiar recaptchalib.php de la siguientes forma:
$ cp /tmp/recaptcha-php-1.10/recaptchalib.php /var/www/html
Paso # 3: Probar y verificar
Crear un script php como el siguiente:
<html><head>
<title>Formulario Simple de Correo</title>
</head><body>
<script>
function checkForm() {
if (document.forms.myphpform.elements['yname'].value.length == 0) {
alert('Por favor ingrese un valor para el campo "Nombre"');
return false;
}
if (document.forms.myphpform.elements['email'].value.length == 0) {
alert('Por favor ingrese un valor para el campo "Email"');
return false;
}
if (document.forms.myphpform.elements['message'].value.length == 0) {
alert('Por favor ingrese un valor para el campo mensaje "Message"');
return false;
}
return true;
}
</script>
<form action="?done=1" method="post" name="myphpform" onSubmit="return checkForm()" >
<table border=0>
<tr><td>Su Nombre:</td>
<td>
<input type="text" name="yname" size="50" maxlength="50" value="" /></td>
</tr><tr>
<td>Su Email:</td>
<td>
<input type="text" name="email" size="50" maxlength="50" value="" /></td>
</tr><tr>
<td>Mensaje:</td>
<td>
<input type="text" name="message" size="50" maxlength="50" value="" /></td>
</tr><tr>
<td>¿Es usted un humano?</td><td>
<?php
@require_once('recaptchalib.php');
$publickey = "YOUR-PUBLIC-KEY";
$privatekey = "YOUR-PRIVATE-KEY";
$resp = null;
$error = null;
if ($_POST["submit"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
$to="usted@ejemplo";
$subject="Feedback from ejemplo";
$body=" Mensaje via webform:
Nombre: " .$_POST["yname"] . "\n
Email: " .$_POST["email"] . "\n
Message: " .$_POST["message"] . "\n";
/* enviando correo */
mail($to,$subject,$body);
echo "
Correo Enviado!
";
exit(1);
} else {
echo "Lo sentimos pero no ha colocado el texto correctamente! Intente nuevamente...";
}
}
echo recaptcha_get_html($publickey, $error);
?>
<td/>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="submit" value="submit" /></td>
</tr>
</table>
</form>
</body>
</html>


8 comentarios sobre Agregar protección y validación de formularios web con Captcha
Por diego josue el 4 de agosto de 2009 en 15:26
ola men seguro que este es 1codigo de proteccion
Por abram el 30 de mayo de 2010 en 23:19
genial ahora hagan un manual de como tener sexo !!!!!!!!!
Por oralia perez el 18 de octubre de 2010 en 21:47
solo quiero comprobar mi correo
Por oralia perez el 18 de octubre de 2010 en 21:48
solo comprobar mi correo
Por facebook layouts el 16 de febrero de 2011 en 13:09
thnx bro
Por damian el 5 de mayo de 2011 en 14:29
buen tuto
Por chuy el 20 de junio de 2011 en 13:57
lo voy a probar, gracias
Por anibal el 5 de diciembre de 2011 en 11:42
Hola! muy buena la info!
Suscribirse
A los siguientes comentarios suscribiéndose a Agregar protección y validación de formularios web con Captcha Comments RSS feed.