Advertisement
Guest User

Untitled

a guest
Jun 11th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.41 KB | None | 0 0
  1. <?php
  2. //gjort av marri
  3. //user class för log in av admin-interface
  4.  
  5. class User
  6. {
  7.  
  8.     private $person_id;
  9.  
  10.     //private $dbh;
  11.  
  12.     private $info;
  13.  
  14.  
  15.     public function fetchInfo()
  16.     {
  17.         //krypterar lösenord om konto skapas i admin
  18.         public
  19.         static function encryptPass($pass)
  20.         {
  21.  
  22.             $pass = md5($pass);
  23.             return $pass;
  24.         }
  25.  
  26.         //hämtar info från databasen
  27.         public
  28.         function fetchInfo()
  29.         {
  30.             global $dbh;
  31.             $sql = "SELECT * FROM person WHERE person_id = $this->person_id";
  32.             $this->info = $dbh->query($sql)->fetch(PDO::FETCH_ASSOC);
  33.         }
  34.  
  35.         // echo $user->getInfo('person_firstname');
  36.         public
  37.         function getInfo($columnName)
  38.         {
  39.  
  40.             return $this->info[$columnName];
  41.         }
  42.  
  43.         //returnera true ifall personen är inloggad
  44.         public
  45.         function is_logged_in()
  46.         {
  47.             if (!is_null($this->person_id)) {
  48.                 return true;
  49.  
  50.             } //annars returnera false
  51.             return false;
  52.         }
  53.  
  54.  
  55.         //ta in emailadress samt lösenord för att logga in, samt skickar in db som parameter
  56.         public
  57.         function log_in($person_email, $person_password, $dbh)
  58.         {
  59.  
  60.             //gör anrop till databasen
  61.             $sql = "SELECT person_id
  62.                FROM person
  63.                WHERE person_email = :person_email
  64.                AND person_password = :person_password";
  65.  
  66.             //databaskod
  67.             $stmt = $dbh->prepare($sql);
  68.             $stmt->bindParam(':person_email', $person_email);
  69.             $stmt->bindParam(':person_password', $person_password);
  70.             // $stmt->bindValue(':person_password', User::encryptPass($person_password));
  71.             $stmt->execute();
  72.  
  73.             //      echo $this->getInfo('person_password');
  74.             //    echo "hehehe";
  75.  
  76.  
  77.             //om vi får tillbaka ett värde (false om tom)
  78.             if ($person_id = $stmt->fetchColumn()) {
  79.  
  80.  
  81.                 //sätt $this->person_id till värdet som finns i databasen
  82.                 $this->person_id = $person_id;
  83.                 // var_dump($this);
  84.                 if (!$this->isAdmin()) {
  85.                     //$this->log_out();
  86.                 }
  87.  
  88.  
  89.                 //die();
  90.                 $this->fetchInfo();
  91.  
  92.                 $this->fetchInfo();
  93.             } else {
  94.                 $this->log_out();
  95.                 //om email eller lösen är fel - gör så personen blir utloggad
  96.             }
  97.  
  98.             //header('Location: index.html');
  99.         }
  100.  
  101.         //funktion för utloggning
  102.         public
  103.         function log_out()
  104.         {
  105.             $this->person_id = null;
  106.         }
  107.  
  108.         /*//hämta person_id
  109.         public function get_person_id() {
  110.             return $this->person_id;
  111.         }*/
  112.  
  113.  
  114.         //kolla ifall användaren är en admin
  115.         public
  116.         function admin_level()
  117.         {
  118.             global $dbh;
  119.  
  120.             $sql = "SELECT person_type
  121.                FROM person
  122.                WHERE person_id = :person_id";
  123.  
  124.             $stmt = $dbh->prepare($sql);
  125.             $stmt->bindParam(':person_id', $this->person_id);
  126.             $stmt->execute();
  127.  
  128.  
  129.         }
  130.  
  131.         public
  132.         function isAdmin()
  133.         {
  134.             return $this->admin_level() === "2";
  135.         }
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement