Crear sistema de Captcha en PHP

22 Octubre 2009

En este tutorial os enseñaremos a construir nosotros mismos un sistema captcha en PHP para evitar el spam en las webs.

Crear sistema CAPTCHA

El sistema está construido en PHP y para que funcione es necesario activar las librerías GD en nuestro servidor.

1º Lo primero es crear la imagen de fondo que intentará evitar que sistemas automáticos puedan leer el contenido del mismo.
La imagen será formato PNG con las medidas 100×42 con el nombre de fcaptcha.png, nosotros hemos creado la siguiente:

Fondo del Captcha

2º Creación del sistema que genera automáticamente el captcha, para ello necesitaremos insertar  las siguientes lineas en un archivo que lo llamaremos captcha.php

<?
session_start();
$string = substr(md5(microtime() * mktime()),0,4);
$captcha = imagecreatefrompng(“fcaptcha.png”);
$clinea = imagecolorallocate($captcha,63,63,63);
$ccolor = imagecolorallocate($captcha, 0, 0, 63);
imageline($captcha,55,0,4,40,$clinea);
imageline($captcha,0,0,35,15,$clinea);
imageline($captcha,40,0,64,24,$clinea);
imageline($captcha,0,10,70,38,$clinea);
imagestring($captcha, 10, 30, 10, $string, $ccolor);
$_SESSION['CAPTCHA'] = $string;
header(“Content-type: image/png”);
imagepng($captcha);
?>

3º Ahora crearemos otro archivo llamado comprobar.php con las siguientes líneas

<?
session_start();
if (isset($_POST['Enviar'])) {
if( $_SESSION['CAPTCHA'] != $_POST['introducido'])
{
exit(‘Te has confundido introduciendo el código’);
}
echo “Código Correcto!”;
}
else {
echo “ERROR”;
}
?>

4º Este es el último paso y el más sencillo, que sería crear un formulario HTML que represente los datos y los envié. El código que nosotros hemos utilizado ha sido el siguiente:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
</head>
<body>
<form action=”comprobar.php” method=”post”> <img src=”captcha.php” alt=”"> <br>
&iquest;Eres humano? <input name=”introducido” type=”text”> <input name=”Enviar” value=”Enviar” type=”submit”> </form>
</body>
</html>

Y con estos 3 archivos tendríamos listo nuestro captcha casero pero de muy buena calidad.

El resultado sería el siguiente:

¿Eres humano?

Compartir:
  • Meneame
  • Twitter
  • Identi.ca
  • BarraPunto
  • Bitacoras.com
  • del.icio.us
  • Digg
  • email
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • Wikio
  • Netvibes
  • Technorati

Entrada archivada bajo: General, Programación

Déjanos tu Comentario

Requerido

Requerido, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Buscar

Calendario

Octubre 2009
L M X J V S D
« Sep   Nov »
 1234
567891011
12131415161718
19202122232425
262728293031  

Envíos más Recientes

Envíos por Categorías

Envíos por Meses

Tags

E-Mail

Correo

Sindicación

Powered By