use Mojolicious::Lite;
plugin 'TagHelpers';
plugin 'captcha' => {
session_name => 'session_string',
out => { force => 'jpeg' },
particle => [ 0, 0 ],
create => [qw/normal rect/],
new => {
rnd_data => [ '0' .. '9', 'A', 'B', 'C' ],
width => 300,
height => 100,
lines => 1,
angle => 90,
gd_font => 'Giant',
thickness => 2,
}
};
get '/surv';
get '/captcha.jpg' => sub {
my $c = shift;
$c->render( $c->stash( data => $c->create_captcha, format => 'jpeg' ) );
};
post '/surv' => sub {
my $c = shift;
my $app = $c->app;
$app->log->debug( "tried: " . $c->req->param('captcha_value') );
$app->log->debug( "Value: " . $c->session->{'session_string'} );
if ( $c->validate_captcha( $c->req->param('captcha_value') ) ) {
$app->log->debug( "Hi there " . $c->param('first_name') );
}
else {
$app->log->debug("could be a bot here");
}
};
app->start;
__DATA__
@@ surv.html.ep
%= form_for surv => (method => 'POST') => begin
%= text_field 'first_name'
%= image 'captcha.jpg', alt => 'A captcha'
%= text_field 'captcha_value'
####
plugin 'captcha' => {
session_name => 'session_string',
out => { force => 'jpeg' },
particle => [ 0, 0 ],
create => [qw/ttf box #80C0F0 #0F644B/],
new => {
rnd_data => [ '0' .. '9', 'A' .. 'H', 'a'.. 'h' ],
width => 120,
height => 60,
lines => 1,
angle => 0,
font => 'arial.ttf',
ptsize => 24,
}
};