Ps1c0tIcO 0 Denunciar post Postado Maio 4, 2013 Estou começando a aprender php e to fazendo um sistema com login mas não estou conseguindo logar, está retornando para a mensagem “Usuário ou senha inválidos”, já tentei tirar criptografia, olhei o usuário e senha no banco de dados e eles estão corretos mas fica do mesmo jeito, já faz uns dias que estou parado ai, pesquisei em vários lugares e até agora não consegui chegar em nenhuma solução, não da nenhum erro, só não valida o usuário e senha :/ alguém ai pode me ajudar? Login.class.php <?php class Login extends DB{ private $tabela = 'usuarios'; private $prefix = 'teste_'; private $cookie = true; public $erro = ''; private function crip($senha){ return sha1($senha); } private function validar($usuario,$senha){ $senha = $this->crip($senha); try{ $validar = self::getConn()->prepare('SELECT `id` FROM `'.$this->tabela.'` WHERE `email`=? AND `senha`=? LIMIT 1'); $validar->execute(array($usuario,$senha)); return ($validar->rowCount() == 1) ? true : false; }catch(PDOExeption $e){ $this->erro = 'Sistema indisponível'; logErros($e); return false; } } function logar($usuario,$senha,$lembrar=false){ if($this->validar($usuario,$senha)){ if(!isset($_SESSION)){ session_start(); } $_SESSION[$this->prefix.'usuario'] = $usuario; $_SESSION[$this->prefix.'logado'] = true; if($this->cookie){ $valor = join('#',array($usuario,$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_USER_AGENT'])); $valor = sha1($valor); setcookie($this->prefix.'token',$valor,0,'/'); } if($lembrar){ $this->lembrardados($usuario,$senha); } return true; }else{ $this->erro = 'Usuário ou senha inválidos'; return false; } } function logado($cookie=true) { if(!isset($_SESSION)){ session_start(); } if(!isset($_SESSION[$this->prefix.'logado']) AND !$_SESSION[$this->prefix.'logado'] = false){ if($cookie){ return $this->dadosLembrados(); }else{ $this->erro = 'Você não está logado'; return false; } } if($this->cookie){ if(!isset($_COOKIE[$thjis->prefix.'token'])){ $this->erro = 'Você não está logado'; return false; }else{ $valor = join('#',array($_SESSION[$this->prefix.'usuario'],$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_USER_AGENT'])); $valor = sha1($valor); if($_COOKIE[$this->prefix.'token'] !== $valor){ $this->erro = 'Você não está logado'; return false; } } } return true; } function sair($cookie=true){ if(!$_SESSION){ session_start(); } unset($_SESSION[$this->prefix.'usuario']); $_SESSION[$this->prefix.'logado'] = false; if($this->cookie AND isset($_COOKIE[$this->prefix.'token'])){ setcookie($this->prefix.'token',false,(time()-3600),'/'); unset($_COOKIE[$this->prefix.'token']); } if($cookie){ $this->limparLembrados(); } return !$this->logado(false); } private function limparLembrados(){ if(isset($_COOKIE[$this->prefix.'login_user'])){ setcookie($this->prefix.'login_user',false,(time()-3600),'/'); unset($_COOKIE[$this->prefix.'login_user']); } if(isset($_COOKIE[$this->prefix.'login_pass'])){ setcookie($this->prefix.'login_pass',false,(time()-3600),'/'); unset($_COOKIE[$this->prefix.'login_pass']); } } private function dadosLembrados(){ if(isset($_COOKIE[$this->prefix.'login_user']) AND isset($_COOKIE[$this->prefix.'login_pass'])){ $usuario = base64_decode(substr($_COOKIE[$this->prefix.'login_user'],1)); $senha = base64_decode(substr($_COOKIE[$this->prefix.'login_pass'],1)); return $this->logar($usuario,$senha,true); } return false; } private function lembrarDados($usuario,$senha){ $tempo = strtotime('+7 day',time()); $usuario = rand(1,9).base64_encode($usuario); $senha = rand(1,9).base64_encode($senha); setcookie($this->prefix.'login_user',$usuario,$tempo,'/'); setcookie($this->prefix.'login_pass',$senha,$tempo,'/'); } } ?> login.php <!DOCTYPE HTML> <html lang="pt-br"> <head> <meta charset="utf-8"> <title>Teste.com - Login</title> </head> <body> <div id"login"> <?php if(isset($_POST['logar'])){ if($objLogin->logar($_POST['email'],$_POST['senha'],$_POST['lembrar'])){ header('Location: ./'); }else{ echo $objLogin->erro; } } ?> <form name="login" enctype="multipart/form-data" action="" method="post"> <input type="text" name="email" /> <input type="password" name"senha" /> <input type="checkbox" name="lembrar" /> <input type="submit" name="logar" value="logar" /> </form> </body> </html> Index.php <?php include('classes/DB.class.php'); include('classes/Login.class.php'); $objLogin = new Login; if(!$objLogin->logado()){ include('login.php'); exit(); } if(true==$_GET['sair']){ $objLogin->sair(); header('Location ./'); } ?> <!DOCTYPE HTML> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width; initial-scale=1.0" /> <title>Teste.com - Index</title> </head> <body> Logado: <a href="?sair=true">sair</a> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Maio 4, 2013 primeiro. se seu objetivo foi orientar objeto recomendo voltar para o estudo bem rápido. segunda coisa da um print no objeto $validar e ve o que ele retorna Compartilhar este post Link para o post Compartilhar em outros sites
Ps1c0tIcO 0 Denunciar post Postado Maio 4, 2013 Sim, ainda estou aprendendo orientação a objeto na faculdade mas la só to estudando java, myhsql e html, ainda não estudei php to aprendendo de curioso mesmo kk. eu mandei imprimir o $validar e não retornou nada. Mandei imprimir o usuário e senha tbm e só imprimiu o usuário. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Maio 4, 2013 então o sistema esta "correto", já que não tem senha o usuário não é válido mesmo. da uma olhada como vc chama seus objetos. primeira coisa é seu objeto logar não pode extender uma conexão.ele usa uma conexão mas eles não tem nada em comum Compartilhar este post Link para o post Compartilhar em outros sites