<?
/*
Libreria di classi per l'autenticazione con chiave privata
Guerrieri Luca hide@address.com
*/
class Autentica {
//Classe per l'autenticazione
private $username;
private $password;
private $check_username_result; //bool risultato username dell'autenticazione
private $check_password_result; //bool risultato password dell'autenticazione
private $link; //il link alla connessione del database
private $login_array; //array risualtato dal login
function Autentica (){
//costruttore
require('config.inc.php'); //Richiede il file di configurazione generale
$this -> error= new MSGmanager; //Istanzia la classe dei messaggi di errore
}
//Metodo per effettuare il login
function login($username,$password) {
//prende in carico il login ed inizia l'autenticazione
$this->username=$username;
$this->password=$password;
$this->check_username(); //chiama il metodo check_username per controllare se esiste lo $username
}
//Metodo che controlla l'esistenza dell'utente
private function check_username() {
//si connette al db e controlla se l'utente esiste altrimenti rilascia un messaggio di errore
$db = new DBconnect;
$db -> db_type="mysql";
$db -> db_param("localhost","root","","acms");
$this->link= $db -> open();
$Qm = new QueryManager;
$Qm ->set_query('Q_username');
$Qm ->set_placeholders(array('username')); //imposto i nomi dei placeholders nella query come array
$Qm ->set_value(array($this->username)); //imposto i nomi delle variabili nella query come array
$Qr = new QueryResult($Qm ->get_dynamic_query(),"assoc",$this->link); //rilascia un array con il risultato della query eseguita
$this-> login_array=$Qr->result;
$db ->close($this->link);
if ((!is_array($this-> login_array))||(is_null($this-> login_array))){
print ($this->error->print_error('Autentica: attenzione il risultato non è un array o è nullo'));
}else {
if (count ($this->login_array)>0){
$this->set_check_username_result(true); //username buono
}else {
$this->set_check_username_result(false); //username no buono
}
}
}
//Metodo che controlla se la password inserita è giusta
private function check_password($password){
//Inserire il controllo della password criptata
if ($this->password == $password){
//la password è giusta
return $this->set_check_password_result(true);
}else {
//la password non è giusta
return $this->set_check_password_result(false);
}
}
//Metodo che rilascia il risultato dell'autenticazione
public function get_check_username_result(){
return $this->check_username_result;
}
//Metodo che imposta il risultato dell'autenticazione
private function set_check_username_result($result){
$this->check_username_result=$result;
}
//Metodo che imposta il risultato dell'autenticazione
private function set_check_password_result($result){
$this->check_password_result=$result;
}
//Metodo che rilascia il risultato dell'autenticazione
public function get_check_password_result(){
return $this->check_password_result;
}
//Metodo che esegue le operazioni in seguito all'esito del tentativo di login
public function login_result (){
//avviamo una Sessione
if ($this->get_check_username_result()==true){ //login con successo
//lo username esiste
/*
foreach (($this->login_array) as $key=>$valore){
foreach ($valore as $key=>$val){
echo "$key=>$val.<br>";
}
echo "$key=>$valore.<br>";
}
*/
//controlliamo se la password è giusta
$this-> check_password(($this->login_array[0]['password']));
if ($this -> get_check_password_result()){
//si sei proprio tu!!!
//Invochiamo LOGManager per scrivere il risultato
//Invochiamo Sessione per impostarla con lo username ed il livello
//$ses -> set_session_var("username",$this->login_array[0]['username']);
//$ses -> set_session_var("level",$this->login_array[0]['level']);
return true;
}else {
//username giusto ma password sbagliata .. info da usare per i log
return false;
//Invochiamo LOGManager per scrivere il risultato
}
}else { //login fallito
//lo username inserito non esiste
//Invochiamo LOGManager per scrivere il risultato
return false;
}
}
}
?>