Advertisement
Guest User

Untitled

a guest
Jun 20th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.99 KB | None | 0 0
  1. <?
  2.     class Sesiones
  3.     {
  4.         private $bd;
  5.        
  6.         public function __construct()
  7.         {
  8.             $this->bd = new DB('localhost', 'lacocinadeyawin_security', 'yawin', 'infernus');
  9.         }
  10.        
  11.         public function getrealip()
  12.         {
  13.             if (!empty($_SERVER['HTTP_CLIENT_IP']))
  14.             {
  15.                 return $_SERVER['HTTP_CLIENT_IP'];
  16.             }
  17.  
  18.             if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
  19.             {
  20.                 return $_SERVER['HTTP_X_FORWARDED_FOR'];
  21.             }
  22.  
  23.             return $_SERVER['REMOTE_ADDR'];
  24.         }
  25.  
  26.         public function creasesion($userid)
  27.         {
  28.             //Capturar ip
  29.                 $ipadd = $this->getrealip();
  30.  
  31.             //Generamos nombre de variable y contenido
  32.                 //Nombre de variable
  33.                     $cont=rand(9,20);
  34.                     $semilla="";
  35.                     for($i=0;$i<$cont;$i++)
  36.                     {
  37.                         $semi=rand(0,9);
  38.                         $semilla=$semilla.$semi;
  39.                     }
  40.                     $nvar=jarl(substr(md5(uniqid(rand())),0,6),$semilla);
  41.  
  42.                 //Contenido de la variable
  43.                     $cont=rand(9,20);
  44.                     $semilla="";
  45.                     for($i=0;$i<$cont;$i++)
  46.                     {
  47.                         $semi=rand(0,9);
  48.                         $semilla=$semilla.$semi;
  49.                     }
  50.                     $nval=jarl(substr(md5(uniqid(rand())),0,6),$semilla);
  51.                
  52.             //Si existe entrada para ese usuario
  53.                     $query = 'SELECT COUNT(ip) FROM sessiones WHERE ip=\''.$ipadd.'\'';
  54.                     $row = $this->bd->select($query);
  55.                     $_cont = 0;
  56.                     foreach($row as $r){$_cont = $r[0];}
  57.                     if($_cont > 0)
  58.                     {
  59.                         //Updatear la entrada con el nombre de variable
  60.                         $query="UPDATE sessiones SET nvar = '$nvar', nval = '$nval', ip = '$ipadd', userid = $userid WHERE ip = '$ipadd'";
  61.                         $this->bd->update($query);
  62.                     }
  63.                     else
  64.                     {
  65.                         //Insertar la entrada con el nombre de variable
  66.                         $query = "INSERT INTO sessiones (ip,nvar,nval,userid) VALUES ('$ipadd','$nvar','$nval',$userid)";
  67.                         $this->bd->insert($query);
  68.                        
  69.                     }
  70.  
  71.             //Crear sesión
  72.                 $_SESSION[$nvar]=$nval;
  73.         }
  74.  
  75.         public function compruebases()
  76.         {
  77.             //Capturar ip
  78.                 $ipadd = $this->getrealip();
  79.  
  80.             //Recuperamos entrada para esa ip
  81.                 $hay=0;
  82.  
  83.                     $query = 'SELECT count(ip), nvar, nval, userid FROM sessiones WHERE ip=\''.$ipadd.'\'';
  84.                     if($row=$this->bd->select($query))
  85.                     {
  86.                         $hay=1;
  87.                     }
  88.  
  89.             //Si existe entrada para esa ip
  90.                 if($hay>0)
  91.                 {
  92.                     //Comprobamos si las variables de sesión son correctas
  93.                         $nvar = "";
  94.                         $nval = "";
  95.                         $userid = "";
  96.                        
  97.                         foreach($row as $r)
  98.                         {
  99.                             $nvar = $r['nvar'];
  100.                             $nval = $r['nval'];
  101.                             $userid = $r['userid'];
  102.                         }
  103.  
  104.                         if(isset($_SESSION[$nvar]))
  105.                         {
  106.                             if($_SESSION[$nvar]==$nval)
  107.                             {
  108.                                 return $userid;
  109.                             }
  110.                             else
  111.                                 return -3;
  112.                         }
  113.                         else
  114.                             return -2;
  115.                 }
  116.                 return -1;
  117.         }
  118.        
  119.         public function get_login($user, $pass)
  120.         {
  121.             $query = "SELECT count(id), pass, id, username, semilla FROM secur WHERE username='$user'";
  122.            
  123.             $row = $this->bd->select($query);
  124.  
  125.             $_cont = 0;
  126.             $_semilla = '';
  127.             $_userid = '';
  128.             $_pass = '';
  129.             foreach($row as $r)
  130.             {
  131.                 $_cont = $r[0];
  132.                 $_semilla = $r['semilla'];
  133.                 $_userid = $r['id'];
  134.                 $_pass = $r['pass'];
  135.             }
  136.            
  137.             if($_cont > 0)
  138.             {
  139.                 require('./cript.php');
  140.                 $pass = jarl($pass,$_semilla);
  141.  
  142.                 if($_pass == $pass && $_userid!=0)
  143.                 {
  144.                     $_ban = $this->checkBan($_userid);
  145.                    
  146.                     if($_ban != 0)
  147.                     {
  148.                         return -2;
  149.                     }
  150.                     else
  151.                     {
  152.                         $this->creasesion($_userid);
  153.                         return 1;
  154.                     }
  155.                 }
  156.                 else
  157.                 {
  158.                     return -1;
  159.                 }
  160.             }
  161.             else
  162.             {
  163.                 return -1;
  164.             }
  165.         }
  166.  
  167.         public function checkBan($_userid)
  168.         {
  169.             $query = "SELECT ban FROM users WHERE id = $_userid";
  170.             $row = $GLOBALS['bd']->select($query);
  171.  
  172.             $_ban = 0;
  173.             foreach($row as $r)
  174.             {
  175.                 $_ban = $r['ban'];
  176.             }
  177.  
  178.             return $_ban;
  179.         }
  180.  
  181.         public function getPrivileges($_userid)
  182.         {
  183.             $query = "SELECT privilegios FROM users WHERE id = $_userid";
  184.             $row = $GLOBALS['bd']->select($query);
  185.  
  186.             $_priv = 0;
  187.             foreach($row as $r)
  188.             {
  189.                 $_priv = $r['privilegios'];
  190.             }
  191.  
  192.             return $_priv;
  193.         }
  194.     }
  195.    
  196.     $sesion = new Sesiones();
  197. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement