This package provides the functionality to create
CAPTCHAs (Completely Automated Public Turing
tests to tell Computers and Humans Apart). Features include:
Creating graphical CAPTCHAs using GD2
Pluggable driver architecture using factory pattern
The package creates CAPTCHAs; due to the
stateless nature of the HTTP protocol, the logic to secure a
webpage using the package must be specifically implemented.
See the usage example
for detailled information.
Currently, the graphical CAPTCHA driver depends on Image_Text which in turn
requires TTF support to be compiled into PHP.
session_start();
$ok = false;
$msg = 'Please enter the text in the image in the field below!';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['phrase']) && isset($_SESSION['phrase']) &&
strlen($_POST['phrase']) > 0 && strlen($_SESSION['phrase']) > 0 &&
$_POST['phrase'] == $_SESSION['phrase']) {
$msg = 'OK!';
$ok = true;
unset($_SESSION['phrase']);
} else {
$msg = 'Please try again!';
}
unlink(md5(session_id()) . '.png');
}
print "<p>$msg</p>";
if (!$ok) {
// create the CAPTCHA as seen above
// and send it to the client
}
See the file CAPTCHA_test.php
in the package distribution for a full, working
example (GD and TTF support required).
Text_CAPTCHA provides information
about the CAPTCHA and makes its inner workings accessible
using several functions defined in the base
class; the specific implementation of them is up to
the driver.
init() is used to initialize the CAPTCHA and provide
further information, like Image_Text
parameters.
_createCAPTCHA() generates the CAPTCHA, but is called
internally by init().
getPhrase() returns the CAPTCHA's phrase.
_createPhrase() creates a phrase for the CAPTCHA,
but is used internally.
getCAPTCHA() returns the CAPTCHA, the format used
depends on the driver implementation.