Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.74 KB | None | 0 0
  1. <?php
  2. include("constants.php");
  3. class Session {
  4.     var $username;
  5.     var $userid;
  6.     var $userlevel;
  7.     var $logged_in;
  8.     var $connection;
  9.     function Session(){
  10.         session_start();
  11.         $this->logged_in = $this->checkLogin();
  12.         $this->connect();
  13.     }
  14.     function connect(){
  15.         $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());
  16.         mysql_select_db(DB_NAME, $this->connection) or die(mysql_error());
  17.     }
  18.     function query($query){
  19.         return mysql_query($query, $this->connection);
  20.     }
  21.     function checkLogin(){
  22.         if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){
  23.             $this->username = $_SESSION['username'] = $_COOKIE['cookname'];
  24.             $this->userid   = $_SESSION['userid']   = $_COOKIE['cookid'];
  25.         }
  26.         if(isset($_SESSION['username']) && isset($_SESSION['userid'])){
  27.             if($this->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0){
  28.                 unset($_SESSION['username']);
  29.                 unset($_SESSION['userid']);
  30.                 return false;
  31.             }
  32.              $this->userinfo  = $this->getUserInfo($_SESSION['username']);
  33.              $this->username  = $this->userinfo['username'];
  34.              $this->userid    = $this->userinfo['userid'];
  35.              $this->userlevel = $this->userinfo['userlevel'];
  36.              return true;
  37.         }else{
  38.              return false;
  39.         }
  40.     }
  41.     function confirmUserID($username, $userid){
  42.         if(!get_magic_quotes_gpc()) {
  43.             $username = addslashes($username);
  44.         }
  45.         $result = $this->query("SELECT userid FROM users WHERE username = '$username'");
  46.         if(!$result || (mysql_numrows($result) < 1)){
  47.             return 1; //Indicates username failure
  48.         }
  49.         $dbarray = mysql_fetch_array($result);
  50.         $dbarray['userid'] = stripslashes($dbarray['userid']);
  51.         $userid = stripslashes($userid);
  52.         if($userid == $dbarray['userid']){
  53.             return 0; //Success! Username and userid confirmed
  54.         }else{
  55.             return 2; //Indicates userid invalid
  56.         }
  57.     }
  58.     function getUserInfo($username){
  59.         $result = $this->query("SELECT * FROM users WHERE username = '$username'");
  60.         if(!$result || (mysql_numrows($result) < 1)){
  61.             return NULL;
  62.         }
  63.         $dbarray = mysql_fetch_array($result);
  64.         return $dbarray;
  65.     }
  66.     function login($subuser, $subpass){
  67.       $subuser = stripslashes($subuser);
  68.       $subpass = md5($subpass);
  69.       if(!get_magic_quotes_gpc()) {
  70.           $subuser = addslashes($username);
  71.       }
  72.       $result = $this->query("SELECT password FROM users WHERE username = '$username'");
  73.       if(!$result || (mysql_numrows($result) < 1)){
  74.          return false;
  75.       }
  76.       $dbarray = mysql_fetch_array($result);
  77.       $dbarray['password'] = stripslashes($dbarray['password']);
  78.       $password = stripslashes($password);
  79.  
  80.       $this->userinfo  = $this->getUserInfo($subuser);
  81.       $this->username  = $_SESSION['username'] = $this->userinfo['username'];
  82.       $this->userid    = $_SESSION['userid']   = $this->generateRandID();
  83.       $this->userlevel = $this->userinfo['userlevel'];
  84.       setcookie("cookname", $this->username, time()+3600, "/");
  85.       setcookie("cookid",   $this->userid,   time()+3600, "/");
  86.       return true;
  87.    }
  88.    function logout(){
  89.       if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){
  90.          setcookie("cookname", "", time()-3600, "/");
  91.          setcookie("cookid",   "", time()-3600, "/");
  92.       }
  93.       unset($_SESSION['username']);
  94.       unset($_SESSION['userid']);
  95.       $this->logged_in = false;
  96.    }
  97.     function isAdmin(){
  98.         if($this->userlevel == 1){
  99.             return true;
  100.         }else{
  101.             return false;
  102.         }
  103.     }
  104.     function generateRandID(){
  105.         $randstr = "";
  106.         for($i=0; $i<16; $i++){
  107.             $randnum = mt_rand(0,61);
  108.             if($randnum < 10){
  109.                 $randstr .= chr($randnum+48);
  110.             }else if($randnum < 36){
  111.                 $randstr .= chr($randnum+55);
  112.             }else{
  113.                 $randstr .= chr($randnum+61);
  114.             }
  115.         }
  116.         return md5($randstr);
  117.     }
  118. };
  119. $session = new Session;
  120. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement