رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کلاس login
#1
با سلام و خسته نباشید خدمت اساتید یک کلاس برای login نوشتم لطفا ببینید از نظر شی گرايی و قابل توسعه بودن و امنیت درست هست یا خیر تشکر
<?php
class Login extends Database {
   private $_User;
   private $_Pass;
   private $_Token;
   function __construct($user,$pass,$token) {
       parent::__construct();
       $this->CatchPost($user, $pass,$token);

   }
       
   public function NullSession() {
       if(!isset($_SESSION))
           unset ($_SESSION[]); 
   }
   
    public function Login() {
       $this->CheckToken();
       $this->SetEscape();
       $this->HashPass();
       if($this->CheckToDb()){
           $this->SetSession();
           $this->SetCookie();
           Security::Redirect(URL);
       }else{
           Error::SetError("نام کاربری یا گذرواژه اشتباه است");
           Security::Redirect(URL."signin");
       }        
   }
   private function CheckToken() {
       if($this->Token !==Session::Get("Token"))
           Security::Redirect (URL."signin");
       
   }
   public function CatchPost($user,$pass,$token) {
       $this->_User=$user;
       $this->_Pass=$pass;
       $this->_Token=$token;
   }
   
   private function SetEscape() {
       $this->_User=Security::CheckPost($this->_User);
       $this->_Pass=Security::CheckPost($this->_Pass);
   }
   private function HashPass() {
       $this->_Pass=hash("sha512",  $this->_Pass);
   }
   
   public function validation() {
       $this->User=  strtolower($this->User);
       if($this->_User ===""){
           Error::SetError("لطفا نام کاربری را وارد کنید");
           Security::Redirect(URL."signin");
       }elseif($this->_Pass ==="") {
           Error::SetError("گذرواژه (پسورد) را وارد نمایید");
           Security::Redirect(URL."signin");
       }       
   }
   private function CheckToDb() {
       $data=array(
           "user"=>  $this->_User,
           "pass"=>  $this->_Pass
       );
       return $this->select("Select COUNT(username,password) FROM user WHERE username=:user AND password=:pass",$data,"fetch",PDO::FETCH_COLUMN);
   }
   
   private function SetSession() {
       Session::Set("UserName",  $this->_User);
   }
   
   private function SetCookie() {
       $hash=md5(uniqid(rand()));
       Cookie::Set("remember","$hash",time()+60*60*24*30);
       $data=array(
           "remember"=>$hash
       );
       $this->update("user", $data,"username=".$this->_User);
   }
   
}

پاسخ
تشکر شده توسط:
#2
لطفاً کلاستونو تو تگ php بنویسید
پاسخ
تشکر شده توسط: erfannorouzi




کاربران در حال بازدید این موضوع: 1 مهمان