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 

8 thoughts on “Captcha con PHP fácil de implementar

  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

  2. 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

  3. tengo una consulta, tengo asignados todos los permisos ( 777 ) y tengo error puntualmente en la linea 123 y 161 . Me dice que chequee los permisos..

  4. ya solucione el tema, por si le sirve a alguin, entiendase soy nuevo en el tema, el directorio debe figurar “../ ” y no ‘http://www.mipagina.com.ar’ ……
    Tengo otro inconveniente y es con las Cokies, están habilitadas en todos los navegadores que poseo y en todas tengo el mismo error, en el archivo class …. linea 79 y 160 …
    Desde ya, muchas gracias, excelente aporte.
    Atte. Leo

Leave a Reply

Your email address will not be published. Required fields are marked *

Proudly powered by WordPress | Theme: Wanderz Blog by Crimson Themes.