sub authenticate {
my ($cgi, $dbh, $session) = @_;
my $login = $cgi->param("login") or return;
my $psswd = $cgi->param("password") or return;
my $profile = $dbh->selectrow_hashref(qq|
SELECT * FROM profile WHERE login=? AND psswd=PASSWORD(?)|, undef, $login, $psswd);
# logged in successfully!
if ( $profile ) {
$session->param(MEMBER_PROFILE => $profile,
logged_in => 1);
$session->clear( ["login_failures"] );
return $profile;
}
# if login failed, increment the counter:
my $i = $session->param( "login_failures" ) || 0;
$session->param( login_failures => ++$i );
$session->clear( ["logged_in"] );
return;
}
Example 3: The authenticate() function.
Back to Article