public static function login($password) { if (self::isAuth()) { Viewer::addMessage('Pre prihlásenie sa musíš najskôr odhlásiť !', Viewer::INFO); Viewer::setPage(Viewer::TEST_LIST); return true; } //odstránime interpunkciu aby sme predišli SQL injection $password = Utils::rmBadCharacters($password); $row = DB::query("SELECT * FROM `login` WHERE `password`='" . $password . "'"); //Utils::log($row); //ak prihlásenie prebehlo úspešne if ($row->num_rows == 1) { //vytiahneme data $data = $row->fetch_array(); //ak je ucet zablokovany if ($data['blocked'] == Auth::BLOCK) { Viewer::addMessage('Tento účet je zablokovaný !', Viewer::ERROR); self::$loginStatus = Auth::BLOCKED; Viewer::setPage(Viewer::LOGIN); return False; } //ak je prihlasenie uspesne //prihlasime Viewer::addMessage('Prihlásenie prebehlo úspešne !', Viewer::OK); self::$loginStatus = Auth::LOGIN_OK; //nastavíme udaje self::$userData['id'] = array("id" => $data["id"], "password" => $password); self::$userData['trieda'] = DB::query("SELECT * FROM `triedy` WHERE `id`=" . $data['trieda'])->fetch_array(); if ($data['admin'] == Auth::ADMIN) { self::$userData['admin'] = True; } else { self::$userData['admin'] = False; } $_SESSION[Auth::USER_DATA] = self::$userData; $_SESSION[Auth::LOGIN_STATUS] = self::$loginStatus; return True; } else { Viewer::addMessage('Zadal/a si zlé heslo !', Viewer::ERROR); $_SESSION[Auth::LAST_LOGIN] = time(); self::$loginStatus = Auth::WRONG_PASSWORD; Viewer::setPage(Viewer::LOGIN); return False; } }
public static function init() { if (self::$initialized == True) { return; } self::$initialized = True; //ak niesom prihlaseny tak ma hod na login if (!Auth::isAuth()) { Viewer::addMessage("Na zobrazenie tejto stránky musíš byť prihlásený/á !", Viewer::ERROR); Viewer::setPage(Viewer::LOGIN); return; } //ak nie som admin (ale som prihlaseny), tak ma hod na TestList /* if(!Auth::isAdmin()) { Viewer::addMessage("Na zobrazenie tejto stránky musíš byť adminstrátor !", Viewer::ERROR); TestList::init(); Viewer::setPage(Viewer::TEST_LIST); return; } */ //vytiahnem predmety $query = DB::query("SELECT * FROM `predmety` ORDER BY nazov"); while ($row = $query->fetch_array()) { self::$predmety[] = $row; } //vytiahnem triedy $query = DB::query("SELECT * FROM `triedy` WHERE blocked=0 ORDER BY id"); while ($row = $query->fetch_array()) { self::$triedy[] = $row; self::$triedy_predmety[$row['name']] = array(); } //vytiahnem ucitelov $query = DB::query("SELECT * FROM `ucitelia`"); while ($row = $query->fetch_array()) { self::$ucitelia[] = $row; } //vytiahnem vsetky testy $query = DB::query("SELECT * FROM tests\n JOIN ucitelia ON ucitelia.ucitelid=tests.ucitel\n JOIN triedy ON triedy.id=tests.trieda\n JOIN predmety ON predmety.predmetid=tests.predmetid\n WHERE blocked=0 AND removed=0"); while ($row = $query->fetch_array()) { self::$triedy_predmety[$row['name']][] = $row; } }
public static function initialize() { setlocale(LC_ALL, "sk_SK.utf8"); header("Content-Type: text/html; charset=utf-8"); date_default_timezone_set("Europe/Bratislava"); self::$paths["this"] = $_SERVER["SCRIPT_FILENAME"]; self::$paths["root"] = getcwd(); //zapiseme do logu vstupne premenne Utils::log($_GET); Utils::log($_POST); session_start(); //pripojime sa do databaazy DB::connect(); //autentizujeme pouzivatela so session Auth::authentificate(); //ak uzivatel pozaduje nejaky stranku tak ju nastavime ako predvolenu if (isset($_GET['page'])) { Viewer::setPage($_GET['page']); } //spustime spracovanie stránky Viewer::run(); //s logom to doriešim neskôr file_put_contents(self::$paths["root"] . "/" . Settings::$logFile, Utils::getLog(), FILE_APPEND | LOCK_EX); }
private static function over() { //ak niesom prihlaseny tak ma prihlas if (!Auth::isAuth()) { Viewer::addMessage("Na zobrazenie tejto stránky musíš byť prihlásený/á !", Viewer::ERROR); Viewer::setPage(Viewer::LOGIN); return False; } //zistim si cislo pozadovaneho testu $testid = 0; if (isset($_GET['testid'])) { $testid = intval($_GET['testid']); } //overim ci exituje taky test pre mna $query = DB::query('SELECT * from `ucitelia` LEFT JOIN `tests` ON ucitelia.ucitelid=tests.ucitel LEFT JOIN `predmety` ON predmety.predmetid=tests.predmetid WHERE `trieda`=' . Auth::$userData['trieda']['id'] . " AND `testid`=" . $testid); //ak nie if ($query->num_rows == 0) { //idem s5 na zoznam testov Viewer::addMessage("Takýto dotazník neexistuje alebo naň nemáš právo!", Viewer::ERROR); TestList::init(); Viewer::setPage(Viewer::TEST_LIST); return False; } //ulozim si udaje o teste self::$testData = $query->fetch_array(); //zistim si groupid testu Utils::log(print_r(self::$testData, true)); $groupid = self::$testData['groupid']; //overim ci tento test neije vyplneny //ak grupy //$queryans = DB::query('SELECT * from `answered` WHERE `groupid`='.$groupid." AND `userid`=".Auth::$userData['id']['id']); $queryans = DB::query('SELECT * from `answered` WHERE `testid`=' . $testid . " AND `userid`=" . Auth::$userData['id']['id']); if ($queryans->num_rows != 0) { Viewer::addMessage("Tento dotazník si už vyplnil/a!", Viewer::ERROR); TestList::init(); Viewer::setPage(Viewer::TEST_LIST); return False; } return True; }
public static function run() { if (isset($_GET['mode'])) { $mode = $_GET['mode']; } else { $mode = ""; } $request = True; //najskôr vyriadime požiadavku if ($mode == self::MODE_LOGIN && isset($_POST['password'])) { Auth::login($_POST['password']); } else { if ($mode == self::MODE_SUBMIT_TEST) { if (Auth::isAuth()) { Test::submit(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } else { if ($mode == self::MODE_LOGOUT) { if (Auth::isAuth()) { Auth::logout(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } else { if ($mode == self::MODE_DEL_PREDMET) { if (Auth::isAdmin()) { Admin::delPredmet(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } else { if ($mode == self::MODE_ADD_CLASS) { if (Auth::isAdmin()) { Admin::addClass(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } else { if ($mode == self::MODE_DEL_CLASS) { if (Auth::isAdmin()) { Admin::delClass(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } else { if ($mode == self::MODE_ADD_PREDMET) { if (Auth::isAuth()) { Admin::addPredmet(); } else { Viewer::addMessage("Na túto akciu nemáš prístup !", Viewer::ERROR); } } } } } } } } //a idem spracovť stránku //ak som prihlásený a chcem sa znova prihlásiť tak mi to nepojde if (self::$page == self::LOGIN && Auth::isAuth()) { Viewer::setPage(self::TEST_LIST); } if (self::$page == self::TEST_LIST) { TestList::init(); } else { if (self::$page == self::TEST) { Test::init(); } else { if (self::$page == self::STATS) { Stats::init(); } else { if (self::$page == self::ADMIN) { Admin::init(); } } } } }
public static function init() { if (self::$initialized == True) { return; } self::$initialized = True; //ak niesom prihlaseny tak ma hod na login if (!Auth::isAuth()) { Viewer::addMessage("Na zobrazenie tejto stránky musíš byť prihlásený/á !", Viewer::ERROR); Viewer::setPage(Viewer::LOGIN); return; } //nacitam z DB vsetky dotazniky ktore su pre mna $query = DB::query('SELECT * from `ucitelia` LEFT JOIN `tests` ON ucitelia.ucitelid=tests.ucitel LEFT JOIN `predmety` ON predmety.predmetid=tests.predmetid WHERE `trieda`=' . Auth::$userData['trieda']['id']); //ak ich je 0 //if($query->num_rows==0) // Viewer::addMessage("Prepáč, ale teraz niesu pre teba k dispozícii žiadne dotazníky !",Viewer::ERROR); //ulozim si ich while ($query->num_rows > 0 && ($row = $query->fetch_array())) { self::$allTests[] = $row; } //tuto treba odfiltrovat zodpovedane testy //nacitam ich zoznam z DB $query = DB::query("SELECT * from `answered` where `userid`=" . Auth::$userData['id']['id']); $answered = array(); while ($query->num_rows > 0 && ($row = $query->fetch_array())) { $answered[] = $row; } //oznacim zodpovedane foreach (self::$allTests as &$test) { if (isset($test['answered'])) { continue; } $found = False; foreach ($answered as $answer) { if ($answer['testid'] == $test['testid']) { $found = True; } } // ak je zodpovedany, zodpovedane su aj vsetky s rovnakym groupid if ($found) { foreach (self::$allTests as &$test2) { //zapnutie skupin - prepisanie testid na groupid if (strcmp($test['testid'], $test2['testid']) == 0) { $test2['answered'] = True; } } } else { $test['answered'] = False; } } //Utils::log(print_r(self::$allTests,true)); //skontrolujeme kolko dotaznikov este zostava $counter = 0; foreach (self::$allTests as &$test) { if ($test['answered'] == False) { $counter++; } } if ($counter == 0 && count(self::$allTests) > 0) { Viewer::addMessage("Ďakujeme za vyplnenie všetkých dotazníkov !", Viewer::OK); } else { Viewer::addMessage("Ešte ti zostáva " . $counter . " dotazníkov.", Viewer::WARNING); } //Utils::log(print_r(self::$allTests,true)); //Utils::log(print_r(self::$allTests,true)); }