<?php
require_once('class.DB.php');
require_once('class.validator.php');
require_once('class.config.php');
class login{
protected $login = '';
protected $password = '';
protected $old_password = '';
protected $new_password1 = '';
protected $new_password2 = '';
protected function __construct(){
$config = config::singleton();
if(!empty($_POST['login'])) $this->login = $_POST['login']; }else{
if(!empty($_POST['password'])) $this->password = $_POST['password']; if(!empty($_POST['old_password'])) $this->old_password = $_POST['old_password']; if(!empty($_POST['new_password1'])) $this->new_password1 = $_POST['new_password1']; if(!empty($_POST['new_password2'])) $this->new_password2 = $_POST['new_password2']; };
}
public static function singleton
(){ if (!isset(self::$instance)) { $c = __CLASS__;
self::$instance = new $c();
}
return self::$instance;
}
public function checkLoginData(){
$validator = validator::singleton();
if(!$validator->validatePassword($this->password)){
return false;
}else if(!$validator->validateLogin($this->login)){
return false;
}else{
$db = DB::singleton();
$query = "SELECT COUNT(*) AS COUNT FROM `ADMIN` WHERE `PASSWORD` = '$pass'";
}else if($validator->validatePESEL($this->login)){
$query = "SELECT COUNT(*) AS COUNT FROM `STUDENTS` WHERE `PESEL` = '$this->login' AND `PASSWORD` = '$pass'";
}else{
$query = "SELECT COUNT(*) AS COUNT FROM `TEACHERS` WHERE LOWER(`NAME`) = LOWER('$this->login') ";
$query .= "AND `PASSWORD` = '$pass'";
};
$db->send_query($query);
$error = $db->isQueryError();
if($error === false){
$row = $db->getRow();
if($row['COUNT'] == 1){
return true;
}else{
return false;
};
}else{
return $error;
};
};
}
public function login(){
$data = $this->checkLoginData();
$validator = validator::singleton();
if($data === true){
$_SESSION['logged'] = true;
$_SESSION['user_login'] = 'Admin';
header('Location: index.php?p=0'); }else if($validator->validatePESEL($this->login)){
$_SESSION['logged'] = true;
$_SESSION['user_login'] = $this->login;
header('Location: index.php?p=0'); }else{
$db = DB::singleton();
$query = "SELECT * FROM `TEACHERS` WHERE LOWER(`NAME`) = LOWER('$this->login')";
$db->send_query($query);
$row = $db->getRow();
if($db->isQueryError() === false){
$_SESSION['logged'] = true;
$_SESSION['user_login'] = $row['NAME'];
$_SESSION['SCHOOL_ID'] = $row['SCHOOL_ID'];
$_SESSION['CLASS_ID'] = $row['CLASS_ID'];
$_SESSION['TEACHER_ID'] = $row['TEACHER_ID'];
header('Location: index.php?p=0'); }else{
return $db->isQueryError().$this->showLoginForm();
};
};
}else if($data === false){
return '<div class="error">Niepoprawne dane. Spróbuj ponownie.</div>'.$this->showLoginForm();
}else{
return $data.$this->showLoginForm();
};
}
public function isStudent(){
$validator = validator::singleton();
if(!empty($_SESSION['logged']) && $validator->validatePESEL($_SESSION['user_login'])) return true; else return false; }
public function logout(){
}
public function getLogin(){
return $_SESSION['user_login'];
}
public function getTeacherId(){
return $_SESSION['TEACHER_ID'];
}
public function isAdmin(){
if(!empty($_SESSION['user_login']) && $_SESSION['user_login'] == 'Admin' && $_SESSION['logged'] === true) return true; else return false; }
public function isTeacher(){
if(!empty($_SESSION['user_login']) && $_SESSION['logged'] == true && !empty($_SESSION['SCHOOL_ID']) && !empty($_SESSION['CLASS_ID']) && !empty($_SESSION['TEACHER_ID'])){ return true;
}else{
return false;
};
}
public function showAccount(){
if($this->isTeacher()){
$teacher_id = $this->getTeacherId();
$query = "SELECT `SCHOOL_NAME`, `CLASS_NAME` FROM `SCHOOLS`,`CLASSES` WHERE `SCHOOLS`.`SCHOOL_ID` =
".$_SESSION['SCHOOL_ID']." AND CLASSES.CLASS_ID = ".$_SESSION['CLASS_ID'];
$db = DB::singleton();
$db->send_query($query);
$error = $db->isQueryError();
if($error === false){
$row = $db->getRow();
return '<div class="center">
<table style="margin:10px auto;">
<tr><td><div class="right">Szkoła: </div></td><td><div class="left">'.$row['SCHOOL_NAME'].'</div></td></tr>
<tr><td><div class="right">Wychowawca(czyni) klasy: </div></td><td><div class="left">'.$row['CLASS_NAME'].'</div></td></tr>
</table>
<br /><br />
<a href="index.php?p=1&action=change_pass_form">Zmiana hasła</a>
</div>';
}else{
return $error;
};
}else if($this->isAdmin()){
return '<br /><br /><div class="center"><a href="index.php?p=1&action=change_pass_form">Zmiana hasła</a></div>';
}else{
return '<div class="error">Nie jesteś zalogowany(a) jako nauczyciel</div>';
};
}
public function showLoginForm(){
return '
<div class="center">
<form action="index.php?p=1&action=login" method="post">
<table style="margin:50px auto;">
<tr><td class="right">Login: </td><td><input type="text" maxlength="30" name="login" class="login" /></td></tr>
<tr><td class="right">Hasło: </td><td><input type="password" maxlength="30" name="password" class="login" /></td></tr>
<tr><td colspan="2" class="right"><input type="submit" value="Zalogój" class="submit" /></td></tr>
</table>
</form>
</div>';
}
};
?>