Crear Captcha con PHP

6
92

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']);
}

6 COMMENTS

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

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

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

Comments are closed.