#!/usr/bin/perl
#1 load my modules
use CGI::Carp qw(fatalsToBrowser set_message);
use CGI::Cookie;
use CGI qw/:standard/;
#2 will write variable loader later
$domain = "betterwebber.com";
#3 set up error handler
BEGIN {
sub handle_errors {
my $msg = shift;
print "
ERROR
";
print "message: $msg";
}
set_message(\&handle_errors);
}
#4 fetch cookies
%cookies = fetch CGI::Cookie;
$user = $cookies{'user'}->value;
$pass = $cookies{'pass'}->value;
#5 send user to the login page if not logged in
$loggedin = &checklogin($user, $pass);
&loginpage if $loggedin = 0;
#THE MENU
if ($loggedin = 1) {
print "you are logged in";
}
#6 checklogin - sub checking user and pass
sub checklogin {
my $userdef = $_[0];
my $passdef = $_[1];
open (FILE, "users.dat");
$usergood = 0;
foreach $userdata () {
($usertmp, $passtmp, $accessleveltmp, $emailtmp) = split(/''/, $userdata);
if ((lc($usertmp) eq lc($userdef)) && (crypt($passdef, $passtmp) eq $passtmp)) {
$usergood = 1;
}
}
close (FILE);
return ($usergood);
}
#7 loginpage - sub that logs in user
sub loginpage {
my $userdef = "";
my $passdef = "";
if (param()) {
$userdef = $query->param('user');
$passdef = $query->param('pass');
}
if (&checklogin($userdef, $passdef) == 0) {
#desplay login html
print header,
start_html('Login Page'),
hr;
h1('You are not logged in. Please do.'),
start_form,
"Username: ", textfield('user'),p,
"Password: ", textfield('pass'),p,
submit,
end_form,
hr;
print %cookies;
} else {
#set cookie and display redirect page
$user = new CGI::Cookie(-name => 'user',
-value => $userdef,
-domain => 'betterwebber.com',
-secure => 1
);
$pass = new CGI::Cookie(-name => 'pass',
-value => $passdef,
-domain => 'betterwebber.com',
-secure => 1
);
$selfurl = $query->self_url;
print header(-cookie=>[$user,$pass]);
print start_html('Loggin in...'),
h1('Logging in (hang tight)...'),
hr;
print ""
}
}