Dado que la librería genera una imagen y no contenido HTML, el script en el que
instanciemos el objeto
Imagen no deberá tener ninguna otra
salida al explorador. Caso contrario habrá error del lado del servidor PHP. Por lo tanto,
todo lo que a continuación se explica deberá ser colocado en un archivo que exclusivamente
genere la imagen del Captcha, digamos, un
captcha.php. Lo iremos armando a lo
largo de este tutorial.
Archivos que conforman la librería
El único archivo necesario para la ejecución básica del script es el archivo
PHPCaptcha.lib.php que puede ser descargado del área de descargas. Además,
para generar un captcha más personalizado puede definirse una carpeta de fuentes,
de imágenes de fondo, así como un archivo con palabras que deban usarse como
códigos para el sistema.
Inicio del script
Para usar la librería hay que incluir primero el archivo
PHPCaptcha.lib.php
en nuestro script, para luego instanciar la clase:
include_once "PHPCaptcha.lib.php";
$captcha = new Captcha;
El método constructor de nuestra clase sólo va a instanciarla, mas no efectuará
ningún tipo de acción. Por lo tanto, no requiere ningún parámetro.
Generando nuestro captcha.
generaCaptcha ( )
PHPCaptcha fácilmente genera la imagen del captcha a través de este método.
No requiere ningún parámetro. Sin embargo, el aplicar este método a la clase aún no
muestra el contenido ni guarda ningún tipo de datos.
$captcha->generaCaptcha();
Obteniendo y guardando el código generado
guardaCaptcha ( )
Hasta ahora ya hemos generado en dos simples pasos el código de nuestro captcha,
así como la imagen que mostraremos. Ahora, antes de enviar la imagen al navegador
de nuestro visitante, tenemos que guardar el código para poder comparar después
con lo que el usuario ingrese en neustro formulario. Para esto disponemos de dos
formas:
Mostrar la imagen Captcha
muestraCaptcha ( )
El script genera la imagen en formato Jpeg. Al ejecutar este método la imagen es
enviada al navegador y se terina la ejecución del script. La forma de usarlo es:
$captcha->muestraCaptcha();
Realizar la verificación una vez enviado el formulario
verificaCaptcha ( string $codigo [ , bool $mayusculas ] )
Si se guardó el código usando el método
guardaCaptcha() descrito
anteriormente, para realizar la comprobación del código Captcha podemos aplicar
este método. Para usarlo no es necesario instanciar la clase, bastará con llamarlo
de la siguiente manera:
procesa.php
En esta página recibimos el contenido de nuestro formulario, y usando el
método en cuestión realizamos la
comprobación. En este caso, el
nombre del campo en el que el usuario ingresó el código Captcha es
captcha
if(Captcha::verificaCaptcha($_POST['captcha'])) {
echo "Captcha correcto";
} else {
echo "Captcha incorrecto";
}
Recuperar el código Captcha si se ingresó uno incorrecto
generaCaptcha ( bool $nuevo )
Si se guardó el código usando el método
guardaCaptcha() descrito
anteriormente, podemos recuperar el código generado la primera vez y volver
a mostrárselo al usuario. Para esto, la función generaCaptcha() ya vista
anteriormente acepta un único parámetro de tipo
boolean que determina
si se ha de generar un nuevo Captcha cada vez que se instancia la clase (true)
o se debe buscar primero un Captcha guardado y mostrarlo (false). El valor por
defecto es
true:
# Si hay un Captcha generado anteriormente, debe buscarlo y mostrarlo.
$captcha->generaCaptcha(false);
Este ejemplo usa el mismo Captcha en cada nueva instacia de la clase. Recargue
(Clic sobre la imagen) para ver el efecto:
Ahora, si se usó un sistema propio de sesiones o se almacenó de manera
diferente el código, se puede definir el código de esta manera:
# Asignar un Captcha predefinido. Debe ser antes del método generaCaptcha()
$captcha->codigo = "Captcha";
Pero... quiero ver un ejemplo!
Bien, aqui tienes el resultado del pequeño script
captcha.php que hemos
ido armando en este pequeño tutorial. El código completo es:
include_once 'PHPCaptcha.lib.php';
$captcha = new Captcha;
$captcha->generaCaptcha();
$captcha->guardaCaptcha();
$captcha->muestraCaptcha();
...y la forma de incluirlo en una página HTML es:
<img src="captcha.php"/>
Ejm... es todo?
No. Este script permite algunas opciones de configuración y presonalización.
Si ya entendió el uso básico de PHPCaptcha puede pasar a la sección de
Configuración y Personalización.