Advertisement
Guest User

Untitled

a guest
May 4th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.27 KB | None | 0 0
  1. <?php
  2. class LoginError extends Exception { }
  3.  
  4. class UserLogin {
  5.     public $LoggedIn = false;
  6.     public $username = false;
  7.     public $email = false;
  8.     public $rank = false;
  9.     public $id = false;
  10.    
  11.     function __construct() {
  12.         global $mysqli, $cookie;
  13.        
  14.         if($cookie->Exists("LoggedIn_Token") && !$cookie->IsEmpty("LoggedIn_Token")) {
  15.             $token = escape_html($cookie->Get("LoggedIn_Token"));
  16.            
  17.             $sql = $mysqli->query("SELECT * FROM admin_sessions WHERE hash='{$token}' AND ip='{$_SERVER['REMOTE_ADDR']}'");
  18.             $row = $sql->fetch_assoc();
  19.             if($sql->num_rows == 1) {
  20.                 $usercheck = $mysqli->query("SELECT * FROM admin_accounts WHERE id='{$row['member_id']}'");
  21.                 $usercheck_row = $usercheck->fetch_assoc();
  22.                 if($usercheck->num_rows == 1) {
  23.                     $this->LoggedIn = true;
  24.                    
  25.                     $this->id = $usercheck_row['id'];
  26.                     $this->username = $usercheck_row['username'];
  27.                     $this->email = $usercheck_row['email'];
  28.                     $this->rank = $usercheck_row['rank'];
  29.                 } else {
  30.                     $cookie->Delete("LoggedIn_Token");
  31.                 }
  32.             } else {
  33.                 $cookie->Delete("LoggedIn_Token");
  34.             }
  35.         }
  36.     }
  37.    
  38.     function SignIn($username, $password) {
  39.         global $mysqli;
  40.        
  41.         $username = escape_html($username);
  42.         $password = escape_html(md5($password));
  43.        
  44.         if(empty($username) && empty($password)) {
  45.             throw new LoginError("Je bent iets vergeten.");
  46.         } else {
  47.             $sql = $mysqli->query("SELECT * FROM admin_accounts WHERE username='{$username}' AND password='{$password}'");
  48.             $row = $sql->fetch_assoc();
  49.             if($sql->num_rows == 0) {
  50.                 throw new LoginError("Gebruikersnaam of wachtwoord is onjuist.");
  51.             } else {
  52.                 $this->CreateSession($row['id']);
  53.             }
  54.         }
  55.     }
  56.    
  57.     function CreateSession($member_id) {
  58.         global $mysqli, $cookie;
  59.        
  60.         $id = escape_html($member_id);
  61.        
  62.         $sql = $mysqli->query("SELECT * FROM admin_accounts WHERE id='{$id}'");
  63.         $row = $sql->fetch_assoc();
  64.        
  65.         if($sql->num_rows == 0) {
  66.             throw new LoginError("Monitor Error: #100");
  67.         } else {
  68.             $uniqid = uniqid("Monitor-");
  69.             $hash = hash("whirlpool", "{$uniqid}{$row['username']}{$row['email']}");
  70.            
  71.             $cookie->Set("LoggedIn_Token", $hash);
  72.            
  73.             $mysqli->query("INSERT INTO admin_sessions (member_id, date, hash, ip) VALUES ('{$id}', NOW(), '{$hash}', '{$_SERVER['REMOTE_ADDR']}')");
  74.         }
  75.     }
  76. }
  77. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement