2010-07-29

Clase para crear Captcha con PHP demanera simple.

La utilización de captcha es muy importante en todos los sitios Web, principalmente cuando se tiene algún tipo de formulario que realice la acción de mandar un email o registrar información en la base de datos.

SimpleCaptcha es una clase en PHP que nos permite realizar captcha fácilmente, su estilo particular se asemeja al captcha que utiliza Google para sus formularios.

Para poder utilizarlo debemos bajarnos el paquete que vendrá con un ejemplo incluido.

Este es un ejemplo básico de como utilizarlo:

Paso 1: Generar la imagen captcha con php

Primero iniciamos sesión para poder guardar la variable captcha en ella, luego instanciamos la clase SimpleCaptcha.
Podemos también configurar las opciones que vienen por defecto.

  1. session_start();

  2. $captcha = new SimpleCaptcha();

  3. //$captcha->wordsFile = 'words/es.php';
  4. //$captcha->session_var = 'secretword';
  5. //$captcha->imageFormat = 'png';
  6. //$captcha->scale = 3; $captcha->blur = true;
  7. //$captcha->resourcesPath = "/var/cool-php-captcha/resources";

  8. $captcha->CreateImage();

Paso 2: Crear el formulario html

Este es un simple formulario donde en el src de la imagen pondremos la ruta del captcha generado con php.

  1. <div>
  2. <img src="captcha.php" id="captcha" /><br/>
  3. <a href="#"
  4. onclick="document.getElementById('captcha').src='captcha.php?
  5. '+Math.random();" id="change-image">
  6. Recargar Captcha.a> <br/>
  7. <input type="text" name="captcha" id="captcha-form" />
  8. <input type="submit" value="Enviar" />
  9. div>

Paso 3: Validar el captcha

  1. if (!emptyempty($_REQUEST['captcha'])) {

  2. $txt=trim(strtolower($_REQUEST['captcha']));

  3. if ( emptyempty($_SESSION['captcha']) ||
  4. $txt != $_SESSION['captcha'] ){
  5. echo "Captcha incorrecto";
  6. } else {
  7. echo "Captcha correcto!";
  8. }
  9. unset($_SESSION['captcha']);
  10. }


Fuente: Link Link2

No hay comentarios: