Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Gehlen

[Resolvido] Erro em script de login

Recommended Posts

Ola, estou com um problema no meu script de login, gostaria de saber se vocês podem me ajudar.

Segue o script abaixo:

<?php // erro estava aki, agora corrigido, o script funciona =D
$Log = new Login();

$Log ->Login = $_POST['usuario'];
$Log ->Senha = $_POST['senha'];

$Log->RevisaLogin();
$Log->RevisaSenha();

$Log->FazLogin();


class Login{
   public $Login;
   public $Senha;

   function RevisaLogin() {
       $this->Login = trim($this->Login);
       $this->Login = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "", $this->Login);
   }

   function RevisaSenha() {
       $this->Senha = trim($this->Senha);
       $this->Senha = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "", $this->Senha);
   }

   function FazLogin() {
       session_start();

       $Serv;
       $User;
       $Pass;
       $Bd;

       $Informacoes = new PegaDados();

       $Serv = $Informacoes->Retorna_Servidor();
       $User = $Informacoes->Retorna_Usuario();
       $Pass = $Informacoes->Retorna_Senha();
       $Bd = $Informacoes->Retorna_Bd();

       $Conn = mysql_connect($Serv, $User, $Pass) or die ("<script language=\"JavaScript\">\nalert(\"Impossivel se conectar ao Banco de dados!\");\n</script>");
       mysql_select_db($Bd, $Conn) or die("Impossivel selecionar o banco de dados!");
       $Re = mysql_query("SELECT login FROM Usuarios WHERE Login ='".$this->Login."' AND Senha = '".$this->Senha."';") or die("Impossivel realizar operações no banco de dados!");
       $Result = mysql_num_rows($Re) or die ("<script language=\"JavaScript\">\nalert(\"Somente funcionarios podem efetuar login, favor vá para nosso forum!\");\n</script>");
       mysql_close($Conn);
       $Usuario = $this->Login;

       if($Result == 1)
       {
           $_SESSION['Usuario'] = $Usuario;
           echo $_SESSION['Usuario'];
           //header("Location: bem-vindo.html"); --> como ele nao loga, usar um header nao me é satisfatorio
           exit ();
       }        
   }
}

class PegaDados {
   private $Servidor = "localhost";
   private $Usuario = "usuario";
   private $Senha = "senha";
   private $BancoDeDados = "bancodedados";

   function Retorna_Servidor()
   {
       return $this->Servidor;
   }

   function Retorna_Usuario()
   {
       return $this->Usuario;
   }

   function Retorna_Senha()
   {
       return $this->Senha;
   }

   function Retorna_Bd()
   {
       return $this->BancoDeDados;
   }
}
?>

 

Vocês poderiam me indicar o erro, e se possivel, como deixalo mais seguro?

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou!

Meus deus!!

eu procurando por um erro desesperado é era soh por um php no inicio

Muito, Muito obrigada mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fábio, cara você foi ninja agora, o cara nem disse qual era o erro!

 

Luiz, duas coisas que você pode fazer para aumentar a segurança:

1 - Criptografar a senha do usuário, hoje você está gravando a senha no banco, o correto seria você gravar um hash da senha, usando uma das funções md5() ou sha1() por exemplo, para validar o usuário você deverá gerar o hash toda vez que ele logar e comparar com o hash gravado no banco.

2 - Se você tiver controle sobre seu servidor, utilize https para as páginas de login.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vou usar criptografia, mas tenho duvidas sobre o aumento de caracteres que o hash gera (Logo, teria de re-ajustar o banco de dados...).

Não tenho controle sobre meu servidor, mas poderiam me dizer como gerar uma conecção via https?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.