Crear Captcha con PHP

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.

session_start();

$captcha = new SimpleCaptcha();

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

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

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

Paso 3: Validar el captcha


if (!empty($_REQUEST['captcha'])) {

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

    if ( empty($_SESSION['captcha']) || 
         $txt != $_SESSION['captcha'] ){
        echo "Captcha incorrecto";
    } else {
        echo "Captcha correcto!";
    }
    unset($_SESSION['captcha']);
}

También te puede interesar

6 Comments

  1. darius
    nov 25, 2009 @ 11:55:04

    GRACIAS AMIGOOOO POR EL CAPTCHA, TU SI ERES GRANDE !!!

  2. Alex
    ene 30, 2010 @ 13:57:40

    Deseo agradecer ya que han solucionado un terrible problema que tenia, un tema bien explicado en muy pocas líneas y con una efectividad y funcionabilidad tremenda… Muchas Gracias

  3. walter
    feb 23, 2010 @ 06:41:47

    Hola
    Parece muy bueno este sistema de capcha
    He visto el demo y esta bueno
    Baje los archivos y lo subi a mis server y no se ve la imagen.
    Y tengo la libreria GD.
    Me podrias decir cual seria el problema?

    Agardeceria que me respondas..

    que tengas un buen dias

    Saludos

    • craftyman
      feb 23, 2010 @ 09:09:11

      Hola Walter,
      Te recomendaria primero que pruebes el captcha en local, y si sigue el mismo problema trata de enviarme que tipo de error sale en el archivo captcha.php abriendolo directamente.

      Saludos.

  4. Martin
    mar 11, 2010 @ 14:58:03

    Que manera de complicar el ejemplo!

  5. Felipe
    oct 13, 2011 @ 04:44:47

    Gracias por el tutorial, excelente..