use strict; unshift @INC, "c:\\web\\parkplus\\cgi-bin"; require 'racingleague.pl'; use DBI; use CGI; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use Time::HiRes; #SET DEBUG STATE my $DEBUG = 1; my $header_printed; my $submitstate; #IS THERE A VALUE IN SUBMITSTATE? $submitstate = param('submitstate'); if ($submitstate){ #WHICH STATE OF SUBMISSION IS REQUESTED if ($submitstate >= 1){ #Submission Request submission_request(); exit; }else{ die_nice("You have an invalid state number"); } }else{ #initial login menu new_display(); exit; } sub submission_request{ print header(); my $db_obj = DBCollection->make_connections(); my $user_obj = retrieve_submission(); my $league_obj = LeagueData->get_league_data($db_obj); my $team_obj = Team->get_team_info($db_obj, $user_obj, $league_obj->adminrace); my $submit_result = check_submit_data($user_obj, $team_obj); if ($submit_result eq 0){ #submission data ok including password main_display($user_obj); exit; }else{ print_header(); print "

$submit_result

"; new_display($user_obj); exit; } } sub print_header{ if ($header_printed == 0){ print header(); print < HTML $header_printed = 1; } } sub new_display{ my ($user) = @_; print_header(); my $username; if ($user){ $username = $user->username; } print < Administrator Login
User Name Password
HTML } sub check_submit_data{ my ($user, $team) = @_; my $submit_error; if (length($user->username) == 0){ $submit_error = "Your username is missing"; } $_ = $user->username; if (m/\s|\W|\d/){ $submit_error = "No spaces or special characters allowed in your username"; } if (length($user->password) == 0){ $submit_error = "Your password is missing"; } if ($user->password ne $team->password){ $submit_error = "Your password is incorrect"; } if ($team->administrator != 1){ $submit_error = "You are not an administrator"; } if (length($submit_error) == 0){ return 0; }else{ return $submit_error; } } sub retrieve_submission{ my $user = User->new(); $user->username(param('username')); $user->password(param('password')); return $user; } sub main_display{ my ($user) = @_; print_header(); my $username; my $password; if ($user){ $username = $user->username; $password = $user->password; } print < Administrator Menu
HTML } sub die_nice{ my ($error_message) = @_; if ($header_printed == 0){ print_header(); } print $error_message; exit; }