Guest User

Untitled

a guest
Aug 29th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.77 KB | None | 0 0
  1. /*
  2. @param username
  3. @param pass
  4. @param permanent
  5.  
  6. return:
  7.     true
  8.     r0 = incorrect data
  9.     r1 = email not confirm
  10. */
  11.  
  12. class Login {
  13.     public function __construct($username, $pass, $permament) {
  14.         $this->username = $username;
  15.         $this->pass = $pass;
  16.         $this->permament = $permament;
  17.     }
  18.  
  19.     public function correctData() {
  20.         // INPUT DATA
  21.         $args = array(
  22.             'username' => $this->username
  23.         );
  24.  
  25.         // IF EXIST THIS USERNAME
  26.         $result = dibi::query("SELECT rand FROM users WHERE %and", $args);
  27.         if (count($result) > 0) {
  28.             $rand = $result->fetchSingle();
  29.             $args['pass'] = hash_hmac("sha256", $this->pass, $rand);
  30.  
  31.             // IF IS CORRECT PASSWORD
  32.             $result = dibi::query("SELECT id, rank, confirm FROM users WHERE %and", $args);
  33.             if (count($result) == 0) return 'r0';
  34.             else {
  35.                 $data = $result->fetch();
  36.  
  37.                 // IF IS ACCOUNT CONFIRM
  38.                 if ($data['confirm'] == '0') return 'r1';
  39.                 else {
  40.                     // COOKIES
  41.                     session_start();
  42.                     $_SESSION['username'] = $this->username;
  43.                     $_SESSION['id'] = $data['id'];
  44.                     $_SESSION['rank'] = $data['rank'];
  45.  
  46.                     // PERMAMENT
  47.                     if ($this->permament === true) {
  48.                         $token = md5(uniqid(mt_rand(), true));
  49.                         setcookie("login", $_SESSION['id'] . ":" . $token, strtotime("+1 month"), "/");
  50.                         $arr = array(
  51.                             'user_id'   => $_SESSION['id'],
  52.                             'token'     => $token
  53.                         );
  54.                         dibi::query('INSERT INTO users_permanent', $arr);
  55.                     }
  56.  
  57.                     // INSERT VISITOR DATA
  58.                     $browser = get_browser(null, true);
  59.                     $arr = array(
  60.                         'user_id'   => $_SESSION['id'],
  61.                         'ip'        => $_SERVER['SERVER_ADDR'],
  62.                         'browser'   => $browser['browser'],
  63.                         'os'        => $browser['platform']
  64.                     );
  65.                     dibi::query('INSERT INTO users_log', $arr);
  66.                     return true;
  67.                 }
  68.             }
  69.         }
  70.         else return 'r0';
  71.     }
  72. }
Add Comment
Please, Sign In to add comment