Guest User

Login

a guest
Dec 12th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.49 KB | None | 0 0
  1. <?php
  2.    
  3.     class Login extends DB{
  4.        
  5.         private $tabela = 'usuarios';
  6.         private $prefix = 'mysite_';
  7.         private $cookie = true;
  8.         public $erro = '';
  9.  
  10.         private function crip($senha){
  11.             return sha1($senha);
  12.         }
  13.         /*criptografar a senha*/
  14.         private function validar($usuario,$senha){
  15.             $senha = $this->crip($senha);
  16.            
  17.             try{
  18.             $validar = self::getConn()->prepare('SELECT `id` FROM `'.$this->tabela.'`  WHERE `email`=? AND `senha`=? LIMIT 1');
  19.            
  20.             $validar->execute(array($usuario,$senha));
  21.            
  22.            
  23.             if($validar->rowCount()==1){
  24.            
  25.                 $asValidar = $validar->fetch(PDO::FETCH_ASSOC);
  26.                
  27.                 $_SESSION[$this->prefix.'uid'] = $asValidar['id'];
  28.                
  29.                 return true;
  30.             }else{
  31.                 return false;
  32.             }
  33.            
  34.            
  35.             }catch(PDOException $e){
  36.                 $this->erro = 'Sistema indisponível';
  37.                 logErros($e);
  38.                 return false;
  39.             }
  40.         }
  41.         /*Método validar se o usuario , é existente*/
  42.        
  43.         function logar($usuario,$senha,$lembrar=false){
  44.             if($this->validar($usuario,$senha)){
  45.                
  46.                 if(!isset($_SESSION)){
  47.                     session_start();
  48.                 }
  49.                
  50.                 $_SESSION[$this->prefix.'usuario'] = $usuario;
  51.                 $_SESSION[$this->prefix.'logado'] = true;
  52.                
  53.                 if($this->cookie){
  54.                     $valor = join('#',array($usuario,$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_USER_AGENT']));
  55.                     $valor = sha1($valor);
  56.                     setcookie($this->prefix.'token',$valor,0,'/');
  57.                 }
  58.                
  59.                 if($lembrar){
  60.                     $this->lembrardados($usuario,$senha);
  61.                 }
  62.                 return true;
  63.             }else{
  64.                     $this->erro=  '<h1>O seu e-mail e a sua senha fornecidos não correspondem às informações em nossos registros. Verifique-as e tente novamente.</h1>';
  65.                 return false;
  66.             }
  67.         }
  68.         /*Função logar o usuario*/
  69.        
  70.         function logado($cookie=true){
  71.             if(!isset($_SESSION)){
  72.                 session_start();
  73.             }
  74.            
  75.             if(!isset($_SESSION[$this->prefix.'logado'])){
  76.                 if($cookie){
  77.                     return $this->dadosLembrados();
  78.                 }else{
  79.                     $this->erro = 'Você não esta logado';
  80.                     return false;
  81.                 }
  82.             }
  83.            
  84.             if($this->cookie){
  85.                 if(!isset($_COOKIE[$this->prefix.'token'])){
  86.                     $this->erro = 'Você não está logado';
  87.                     return false;
  88.                 }else{
  89.                     $valor = join('#',array($_SESSION[$this->prefix.'usuario'],$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_USER_AGENT']));
  90.                     $valor = sha1($valor);
  91.                    
  92.                     if($_COOKIE[$this->prefix.'token'] !== $valor){
  93.                         $this->erro = 'Você não está logado';
  94.                         return false;
  95.                     }
  96.                 }
  97.             }
  98.             return true;           
  99.         }      
  100.        
  101.         function logout($cookie=true){
  102.             if(!isset($_SESSION)){
  103.                 session_start();
  104.             }
  105.             /*logout de usuário*/
  106.             unset($_SESSION[$this->prefix.'usuario']);
  107.             unset($_SESSION[$this->prefix.'uid']);
  108.             $_SESSION[$this->prefix.'logado'] = false;
  109.            
  110.             if($this->cookie AND isset($_COOKIE[$this->prefix.'token'])){
  111.                 setcookie($this->prefix.'token',false,(time()-3600),'/');
  112.                 unset($_COOKIE[$this->prefix.'token']);
  113.             }
  114.            
  115.             if($cookie){
  116.                 $this->limparLembrados();
  117.             }
  118.            
  119.             return !$this->logado(false);
  120.         }
  121.        
  122.        
  123.         function getDados($uid,$colunas='*'){
  124.             if($this->logado()){
  125.             $tabela_prefix = 'sllapsocial_';   
  126.                 $dados = self::getConn()->prepare('SELECT '.$colunas.' FROM `'.$this->tabela.'` WHERE `id`=?');
  127.                 $dados->execute(array($uid));
  128.  
  129.                 return $dados->fetch(PDO::FETCH_ASSOC);
  130.             }
  131.            
  132.        
  133.         }
  134.    
  135.         /*função verificar se o "usuário está logado"*/
  136.        
  137.         private function limparLembrados(){
  138.             if(isset($_COOKIE[$this->prefix.'login_user'])){
  139.                 setcookie($this->prefix.'login_user',false,(time()-3600),'/');
  140.                 unset($_COOKIE[$this->prefix.'login_user']);
  141.             }
  142.            
  143.             if(isset($_COOKIE[$this->prefix.'login_pass'])){
  144.                 setcookie($this->prefix.'login_pass',false,(time()-3600),'/');
  145.                 unset($_COOKIE[$this->prefix.'login_pass']);
  146.             }
  147.         }
  148.         /*Criar cookie*/
  149.         private function dadosLembrados(){
  150.             if(isset($_COOKIE[$this->prefix.'login_user']) AND isset($_COOKIE[$this->prefix.'login_pass'])){
  151.                 $usuario = base64_decode(substr($_COOKIE[$this->prefix.'login_user'],1));
  152.                 $senha = base64_decode(substr($_COOKIE[$this->prefix.'login_pass'],1));
  153.                
  154.                 return $this->logar($usuario,$senha,true);
  155.             }
  156.             return false;
  157.         }
  158.         /**/
  159.         private function lembrardados($usuario,$senha){
  160.             $tempo = strtotime('+7 day',time());
  161.            
  162.             $usuario = rand(1,9).base64_encode($usuario);
  163.             $senha = rand(1,9).base64_encode($senha);
  164.            
  165.             setcookie($this->prefix.'login_user',$usuario,$tempo,'/');
  166.             setcookie($this->prefix.'login_pass',$senha,$tempo,'/');
  167.         }
  168.        
  169.     }
  170.     /*lembrar os dados do usuario*/
Add Comment
Please, Sign In to add comment