Captcha con PHP fácil de implementar

En Nodstrum encuentro una utilidad en PHP para crear Captcha facilmente (uno de los pocos en toda la red que funciona. Garantizado!). Les explicaré como hacerlo.

Easy Captcha

Paso 1: obligatorio! verifica que tengas habilitado la librería GD de PHP.

Paso 2: Nos descargamos la clase captcha.class.php del blog del autor, y vamos a configurar este archivo. Busca la variables $imageDirectory e $imageURL. La primera variable contiene el nombre de la carpeta donde se almacenarán las imágenes generadas dinámicamente. Esta carpeta debe tener permiso de escritura. La segunda variable es la dirección URL completa de la carpeta anterior. Ejemplo:

var $imageDirectory = 'image_directory';
var $imageURL = 'http://localhost/mi_sistema_captcha/image_directory';

Paso 3: Creamos un archivo PHP, le damos cualquier nombre, para este ejemplo index.php.  Lo que vamos hacer es:

  • Llamar a la clase captcha.class.php
  • Crear una instancia de la clase Captcha
  • Usamos el método create() de la instancia y lo pasamos a una variable, en este caso $captchaImage
  • Note: que verificamos si la variable POST[$captcha->captchaInputName] esta declarada. Esto lo hacemos porque usamos el mismo archivo index.php para el proceso de verificación del captcha.
  • Usamos el método verify() para verificar si el captcha el correcto ó no. Se almacenerá el resultado en la variable $message.
  • Ya en  la parte del body, si $message esta declarado, se muestra; caso contrario mostrará el formulario. Note que imprimos la variable $captchaImage. Ésta contiene una imagen con un código y campo de texto, osea en captcha en sí.

Código de index.php

<?php
require_once('captcha.class.php');
$captcha = new Captcha;
$captchaImage = $captcha->create();

//verificamos si variables POST estan declaradas
if(isset($_POST[$captcha->captchaInputName])){

//verificamos el captcha
$verified = $captcha->verify($_POST[$captcha->captchaInputName]);
if($verified){
$message='Correcto';
}else{
$message='Incorrecto';
}
}
?>

<html>
<head>
<title>Captcha</title>
</head>

<body>
<?php
if(isset($message)){
echo $message;
}else{
?>

<form name="formulario" method="post" action="index.php">
<?php echo $captchaImage; ?>
<input type="submit" value="Verificar" />
<?php } ?>
</form>
</body>
</html>

[ ver un demostración del captcha

Realmente una práctico y sencillo.

Vía | Nodstrum 

Comentarios

  1. avatar Pablo 2009-06-05 14:43:08 5 En mi caso daba un error, pero se corrigió despues de cambiar la linea 123 de captcha.class.php
    $saveImage = imagepng($image, $imageFilename, 100);
    por
    $saveImage = imagepng($image, $imageFilename, 9);

    muy buen post
  2. avatar felipe fernandez 2008-09-15 02:55:45 4 lore, compartes?
  3. avatar felipe fernandez 2008-09-15 02:54:40 3 Genial por sencillez pero el png que genera es erróneo ¿sabes el motivo?
  4. avatar jesusvld 2007-11-26 17:30:39 2 haber si compartes esas lineas :) Saludos
  5. avatar lore 2007-11-26 15:44:42 1 gracias..me ha sido de utilidad este script....lo unico malo es q no borra automaticamente las imagenes que va generando....asi que tuve que escribir un par de lineas más .......y yo q no queria trabajar...aggghhh :S

Dejar un comentario