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
####
my $session_data;
my $session = load CGI::Session();
if ($session->param(-name=>'LoggedIn')) {
$session->expire('LoggedIn', "+10000s");
$session_data = $session->param(-name=>'LoggedIn');
}
$session->flush();
#Not logged in
unless ($session_data) {
print redirect('http://www.Domain.com/Login.pl?Event=You must be logged in to view this page&Referer=http://www.Domain.com/Members.pl');
exit(1);
}
#Begin logged in
if ($session_data) {
print $session->header();
#etc
}