my $session = new CGI::Session();
if ($data{'Param'}{'Referer'}) {
$session->param(-name => 'Referer', -value => $data{'Param'}{'Referer'});
}
my $referer = $session->param(-name=>'Referer') || $default_referer;
#
if ($data{'Param'}{'Login'}) {
my $statement = "SELECT Client, Email, First_Name, Telephone_Number FROM $dbtable_Users WHERE (Email='$data{'Param'}{'Email'}' AND Password='$data{'Param'}{'Password'}')";
my $sth = $dbh->prepare($statement);
$sth->execute();
if ($sth->rows == 0) {
$data{'Login'}{'Fail'} .= 'Wrong email / password combination. Please retry. If you are having problems logging in, Contact Us. ';
}
else {
while (my @row = $sth->fetchrow_array()) {
$data{'Session'} = {
'LoginEpoch' => time,
'Client' => $row[0],
'Email' => $row[1],
'FirstName' => $row[2]
};
}
$session->param(-name => 'LoggedIn', -value => $data{'Session'});
$session->expire('LoggedIn', "+10000s");
$session->flush();
print redirect($referer);
exit(1);
}
}
elsif ($data{'Param'}{'Logout'}) {
$session->clear(['LoggedIn']);
$session->flush();
print redirect('http://www.Domain.com/Login.pl?Event=You have logged out');
exit(1);
}
else {
$data{'Login'}{'Begin'} .= q(Please login. If you are having problems logging in, Contact Us. );
}
print $session->header();
#etc