} else { sleep(DELAY_SEC); //echo SYMBOL_ERROR; echo -100; return; } $SelectedTrueFalseProbs = array(); $SelectedSingleSelProbs = array(); $SelectedMultiSelProbs = array(); $easy_level_amount = 0; $mid_level_amount = 0; $high_level_amount = 0; $problem_sets = json_decode($problem_sets); foreach ($problem_sets as $problem_set) { //print_r($problem_set); $cur_problems = get_problems($problem_set); if ($cur_problems == ERR_NOT_ENOUGH_PROBLEM) { continue; } $SelectedTrueFalseProbs = array_merge($SelectedTrueFalseProbs, $cur_problems["true_false_problems"]); $SelectedSingleSelProbs = array_merge($SelectedSingleSelProbs, $cur_problems["single_problems"]); $SelectedMultiSelProbs = array_merge($SelectedMultiSelProbs, $cur_problems["multi_problems"]); $easy_level_amount = $easy_level_amount + $cur_problems["easy_level_amount"]; $mid_level_amount = $mid_level_amount + $cur_problems["mid_level_amount"]; $high_level_amount = $high_level_amount + $cur_problems["high_level_amount"]; } // get problems detail about select problems foreach ($select_problems as $problem_id) { $cur_problem = get_problem_detail($problem_id); if ($cur_problem->type == TRUE_FALSE_PROB) { array_push($SelectedTrueFalseProbs, $cur_problem);
return $problems; } // checks if the user has admin privileges // magic cookie contains hash of the username and either "is_an_admin" or // "just_a_user" appended based on the privileges function check_if_admin($username, $magic_cookie) { // check if the user that is logged in has admin privileges if (strcmp($magic_cookie, md5($username . "is_an_admin")) == 0) { return true; } return false; } /*---------------------------------------------------------------------------*/ require 'database.php'; // the PlatesPHP template engine require 'lib/vendor/autoload.php'; $title = "Problemset"; // check if the user is logged in $user_logged_in = isset($_COOKIE['username']); // check whether the user is an admin $admin = $user_logged_in == true ? check_if_admin($_COOKIE['username'], $_COOKIE['huehuehue']) : false; // 1D array of problems which user already solved $solved_problems = $user_logged_in == true ? get_solved_problems($_COOKIE['username'], $dbc) : array(); // 2D array of problems as it is passed to the template // row keys: problem_id, problem_name, published, solved $all_problems = get_problems($solved_problems, $dbc); $data = array('title' => $title, 'problems' => $all_problems, 'admin' => $admin); // render the webpage $templates = new League\Plates\Engine('templates'); echo $templates->render('problemset', $data);
} // checks if the user has admin privileges // magic cookie contains hash of the username and either "is_an_admin" or // "just_a_user" appended based on the privileges function is_admin($username, $magic_cookie) { // check if the user that is logged in has admin privileges if (strcmp($magic_cookie, md5($username . "is_an_admin")) == 0) { return true; } return false; } /*---------------------------------------------------------------------------*/ require 'database.php'; // the PlatesPHP template engine require 'lib/vendor/autoload.php'; $title = "Admin dashboard"; // check if the user is logged in $user_logged_in = isset($_COOKIE['username']); // check whether the user is an admin $admin = $user_logged_in == true ? is_admin($_COOKIE['username'], $_COOKIE['huehuehue']) : false; // array of problem ids $problems = get_problems($dbc); // array of usernames $users = get_users($dbc); // array of possible languages for solution submission $langs = array('C++' => "cpp", 'C' => "c", 'Pascal' => "pas", 'Java' => "java", 'Python' => "py"); $data = array('title' => $title, 'problems' => $problems, 'users' => $users, 'admin' => $admin, 'langs' => $langs); // render the webpage $templates = new League\Plates\Engine('templates'); echo $templates->render('admin', $data);