$captcha_data_ref = $self->create_sound_file($code,$md5);
$output_filename = File::Spec->catfile($self->output_folder(),$md5 . ".wav");
} else {
croak "invalid captcha type [" . $self->type() . "]";
}
$self->_save_file($captcha_data_ref,$output_filename);
$self->_save_code($code,$md5);
# return crypt (md5)... or, if they want it, the code as well.
return wantarray ? ($md5,$code) : $md5;
}
sub version
{
return $VERSION;
}
1;
__END__
# Below is stub documentation for your module. You'd better edit it!
=head1 NAME
Authen::Captcha - Perl extension for creating captcha's to verify the human element in transactions.
=head1 SYNOPSIS
use Authen::Captcha;
# create a new object
my $captcha = Authen::Captcha->new();
# set the data_folder. contains flatfile db to maintain state
$captcha->data_folder('/some/folder');
# set directory to hold publicly accessable images
$captcha->output_folder('/some/http/folder');
# Alternitively, any of the methods to set variables may also be
# used directly in the constructor
my $captcha = Authen::Captcha->new(
data_folder => '/some/folder',
output_folder => '/some/http/folder',
);
# create a captcha. Image filename is "$md5sum.png"
my $md5sum = $captcha->generate_code($number_of_characters);
# check for a valid submitted captcha
# $code is the submitted letter combination guess from the user
# $md5sum is the submitted md5sum from the user (that we gave them)
my $results = $captcha->check_code($code,$md5sum);
# $results will be one of:
# 1 : Passed
# 0 : Code not checked (file error)
# -1 : Failed: code expired
# -2 : Failed: invalid code (not in database)
# -3 : Failed: invalid code (code does not match crypt)
##############
=head1 ABSTRACT
Authen::Captcha provides an object oriented interface to captcha file creations. Captcha stands for Completely Automated
Public Turning test to tell Computers and Humans Apart. A Captcha is a program that can generate and grade tests that:
- most humans can pass.
- current computer programs can't pass
The most common form is an image file containing distorted text, which humans are adept at reading, and computers (generally)
do a poor job.
This module currently implements that method. We plan to add other methods,
such as distorted sound files, and plain text riddles.
=head1 REQUIRES
GD (see http://search.cpan.org/~lds/GD-2.11/)
Digest::MD5 (standard perl module)
In most common situations, you'll also want to have:
A web server (untested on windows, but it should work)
cgi-bin or mod-perl access
Perl: Perl 5.00503 or later must be installed on the web server.
GD.pm (with PNG support)
=head1 INSTALLATION
Download the zipped tar file from:
http://search.cpan.org/search?dist=Authen-Captcha
Unzip the module as follows or use winzip:
tar -zxvf Authen-Captcha-1.xxx.tar.gz
The module can be installed using the standard Perl procedure:
perl Makefile.PL
make
make test
=6= |