Próbuje zrobić logowanie do systemu z wykorzystaniem OOP.
Proszę o opinie czy to co robie ma sens.
define( "DB_HOST", "localhost"); define( "DB_NAME", "sys_rdp"); define( "DB_PASS", "vertrigo");
//--------------------------------------------------------------------------------------------------------------------------------------------------
class DBconnect{
public $pdo;
private $db_host;
private $db_name;
private $db_user;
private $db_pass;
public function __construct($db_host, $db_name, $db_user, $db_pass)
{
try{
$this->db_host = $db_host;
$this->db_name = $db_name;
$this->db_user = $db_user;
$this->db_pass = $db_pass;
$this->pdo = new PDO
('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass, array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); }catch(PDOException $e){
exit('Połączenie nie mogło zostać utworzone: ' . $e->getMessage()); }
}
private function __clone(){}
public static function getInstance
() {
if (self::$instance === null) {
self::$instance = new DBconnect(DB_HOST, DB_NAME, DB_USER, DB_PASS);
}
return self::$instance;
}
}
//-------------------------------------------------------------------------------------------------------------------------------------
class User
{
public $id = "";
public $login = "";
public $passwd = "";
public $level = "";
public $user_id = 0;
public $email = "";
public $mobile = "";
public $data_add = "";
public $username = "";
public function __construct(){}
public function addUser(){}
public function deleteUser(){}
public function updateUser(){}
}
//-------------------------------------------------------------------------------------------------------------------------------------
class Authentication
{
private $db;
public $user;
public function __construct(){
$this->db = DBconnect::getInstance();
$this->user = new User;
}
public function get_param()
{
if( isset($_POST["login"]) and
isset($_POST["passwd"]) ) { $this->user->login = $_POST["login"];
$this->user->passwd = $_POST["passwd"];
$_SESSION["login"] = $this->user->login;
$_SESSION["passwd"] = $this->user->passwd;
return true;
}elseif(isset($_SESSION["login"]) and
isset($_SESSION["passwd"]) ){ $this->user->login = $_SESSION["login"];
$this->user->passwd = $_SESSION["passwd"];
return true;
}else{
return false;
}
}
public function login()
{
if( $this->get_param() )
{
$sql = "select * FROM users WHERE active = 1 and login = :login and passwd = md5(:passwd)";
$query = $this->db->pdo->prepare($sql, array(PDO
::ATTR_CURSOR => PDO
::CURSOR_FWDONLY)); $query->bindParam(':login', $this->user->login, PDO::PARAM_STR);
$query->bindParam(':passwd', $this->user->passwd, PDO::PARAM_STR);
$query->execute();
$row = $query->fetch();
if( $query->rowCount() > 0 ) {
$this->user->login = "true";
$this->user->level = $row["is_admin"];
$this->user->user_id = $row["id"];
$this->user->username = $row["firstname"]." ".$row["lastname"];
}else{
$this->user->login = "";
$this->user->passwd = "";
$this->user->level = "";
$this->user->user_id = 0;
$this->user->username = "";
}
}
}
}