Ir para conteúdo
Fórum Script Brasil
  • 0

Trocar Meio de login


jatobas

Pergunta

Galera já peguei um site que está todo pronto e preciso troca a forma de login em vez de usar num_serie ele vai busca email no banco de dados.

Onde devo fazer as alterações pra validar email e não num_serie? obs.: Site estruturado em modelo MVC

util login.php

<?php
    
    require_once('../dao/UserDAO.php');
    
    $login = $_POST['login'];
    $senha = $_POST['senha'];
    
    $usr = new UserDao(); 
    $usuario =  $usr->logar($login, $senha);
    
    
        
    if($usuario == null){
        include "protege.php";
        
        $protege = new protege();
        $protege->destroiSession();        
    }else{    
        if($usuario=="cliente"){
            header("location:../view/vizualizarCliente.php");                        
        }else{
            header("location:../view/cadastro.php");
        }
    }
?>
UserDao() para validar o login
<?php
        
    require_once "../entidade/Cliente.class.php";
    require_once "../entidade/Cidade.class.php";
    require_once "../entidade/Endereco.class.php";
    require_once "../entidade/Estado.class.php";
    require_once "../entidade/Faq.class.php"; 
    require_once "../util/ConnectionFactory.class.php";
    require_once "../util/ServiceDB.php";
    session_start();        
        
    class UserDao {
                
                
        function logar($login, $senha) {
            
            $servicedb = new ServiceDB();
            $cf = ConnectionFactory::singleton();
                
                        
            try{
                $sql = "SELECT * FROM cliente WHERE num_serie='$login' and senha='$senha'";    
                $query = $servicedb->ExecutarSQL($sql, $cf->conn);
                
                $linha= $servicedb->NumRows($query);
                                                            
                if($linha){
                
                    while($linha = mysql_fetch_object($query)){
                        $_SESSION['tipo'] = "cliente";
                        $_SESSION['num_serie'] = $linha->num_serie;
                                            
                    }
                                        
                    
                    return "cliente";                            
                }else{
        
                    $sql = "SELECT * FROM administrador WHERE cpf='$login' and senha='$senha'";    
                    $query = $servicedb->ExecutarSQL($sql, $cf->conn);
                
                    $linha= $servicedb->NumRows($query);
                                                            
                    if($linha){
                
                        while($linha = mysql_fetch_object($query)){
                            $_SESSION['tipo'] = "administrador";
                            $_SESSION['num_serie'] = $linha->cpf;
                                                
                        }                                        
                    
                        return "administrador";
                    }else{
                        return null;
                    }
                    
                }
            }catch ( PDOException $ex ){
                 echo "Erro: ".$ex->getMessage(); 
            }
        }
        
        
        function userNumberSerie($num_serie){
            $servicedb = new ServiceDB();
            $cf = ConnectionFactory::singleton();
                
                        
            try{
                $sql = "SELECT * FROM cliente,endereco,cidade,estado WHERE num_serie='$num_serie' and cliente.endereco=endereco.idEndereco and endereco.cidade=cidade.id and cidade.estado=estado.id";    
                $query = $servicedb->ExecutarSQL($sql, $cf->conn);
                
                $linha= $servicedb->NumRows($query);
                                                            
                if($linha){
                
                    while($linha = mysql_fetch_object($query)){
                        $idCliente=$linha->idCliente;
                        $_SESSION['tipo'] = "cliente";
                        $nomeFantasia= $linha->nomeFantasia;
                        $razaoSocial= $linha->razaoSocial;
                        $tipoPessoa= $linha->tipoPessoa;
                        $cnpjCpf=$linha->cnpjCpf;
                        $ieRG= $linha->ieRG;
                        $_SESSION['num_serie'] = $linha->num_serie;
                        $senha= $linha->senha;
                        $qtd_pto= $linha->qtd_pto;
                        $qtd_proc= $linha->qtd_proc;
                        $valor_manut= $linha->valor_manut;
                        $telefone= $linha->telefone;
                        $ddd= $linha->ddd;
                        $fax=$linha->fax;
                        $email= $linha->email;
                        
                        //endereco
                        $idEndereco= $linha->idEndereco;
                        $logradouro = $linha->logradouro;
                        $quadra= $linha->quadra;
                        $lote=$linha->lote;
                        $numero=$linha->numero;
                        $complemento=$linha->complemento;
                        $setor=$linha->setor;
                        $cep=$linha->cep;
                        
                        //cidade
                        $nomeCidade=$linha->cidade;
                        $nomeEstado=$linha->nomeEstado;
                        
                                            
                    }
                    $estado= new Estado();
                    $estado->construtorEstado($nomeEstado);
                    
                    $cidade=new Cidade();
                    $cidade->construtorCidade($nomeCidade, $estado);
                    
                    $endereco= new Endereco();
                    $endereco->construtorEndereco($idEndereco,$logradouro,$quadra, $lote, $numero, $complemento, $setor, $cidade, $cep);
                    
                    $cliente = new Cliente();
                    $cliente->construtorCliente($idCliente,$nomeFantasia,$razaoSocial,$tipoPessoa,$cnpjCpf,$ieRG,$num_serie,
                         $senha,$qtd_pto,$qtd_proc,$valor_manut,$telefone,$ddd,$fax,$email,$endereco );
        

                    return $cliente;    
                }else{
                    return null;
                                    
                }
            }catch ( PDOException $ex ){
                 echo "Erro: ".$ex->getMessage(); 
            }
        }
        public function alteraSenha($login, $senha, $nova_senha){
            
            require_once('../util/ServiceDB.php');
            $servicedb = new ServiceDB();
            $cf = ConnectionFactory::singleton();
        
            try{    
                $sql = "UPDATE cliente SET 
                            senha = '$nova_senha'
                        WHERE num_serie = '$login' AND  
                            senha = '$senha'     
                                                    
                        ";    
                            
                $query = $servicedb->ExecutarSQL($sql, $cf->conn);
            
                if($query){
                    return "Alteração de senha realizada com sucesso.";
                }else{
                    return "Erro ao realizar alteração de senha.";
                }
            }catch ( PDOException $ex ){ echo "Erro: ".$ex->getMessage(); }
            }
        

        
        }    
        
        
    
        


?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Onde tiver num_serie, troque por email:

$sql = "SELECT * FROM cliente WHERE email='$login' and senha='$senha'";
$_SESSION['email'] = $linha->email;
$sql = "SELECT * FROM cliente,endereco,cidade,estado WHERE email='$email' and cliente.endereco=endereco.idEndereco and endereco.cidade=cidade.id and cidade.estado=estado.id";
$cliente->construtorCliente($idCliente,$nomeFantasia,$razaoSocial,$tipoPessoa,$cnpjCpf,$ieRG,$email,$senha,$qtd_pto,$qtd_proc,$valor_manut,$telefone,$ddd,$fax,$email,$endereco );

OBS: Verifique se o E-mail está escrito email, ou e_mail na tabela do banco de dados.

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz as alterações mais não tive sucesso, estarei mostrando como meu codigo está funcionando e vou postar.

Meu formulario está na pasta view login.php SEGUE ABAIXO O FORMULARIO

<form action="../util/login.php" method="post">
                      <label style="font-weight:bold;font-family: Tahoma; font-size: 12px; padding: 50px 0px 0px 40px;float: left;clear: both;">Login:</label>
                      <input type="text" name="login" size="60" maxleght="14" style="float: left;padding: 8px 0px 0px 0px; margin: 16px 0px 0px 40px;
                          border: 2px solid #D3D3D3;background: #F5F5F5;clear: both;-moz-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px;" />
                    
                    <label style="font-weight:bold;font-family: Tahoma; font-size: 12px; padding: 50px 0px 0px 40px;float: left;clear: both;">Senha:</label>
                    <a href="../contato.php" style="color:#6699cc;font-family: Tahoma; font-size: 12px; padding: 8px 0px 0px 40px;float: left;clear: both;"><span>Ainda não sou cadastrado</span></a>
                    <label style="font-family: Tahoma; font-size: 12px; padding: 8px 0px 0px 40px;float: left;clear: both;">Já sou cadastrado, esta é minha senha:</label>
                      <input type="password" name="senha" size="60" maxleght="6" style="float: left;padding: 8px 0px 0px 0px; margin: 16px 0px 0px 40px;
                          border: 2px solid #D3D3D3;background: #F5F5F5;clear: both;-moz-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px;"/><br/>                  
                      <a href="lembrarSenha.php" style="color:#6699cc;font-family: Tahoma; font-size: 12px; padding: 8px 0px 0px 40px;float: left;clear: both;"><span>Lembrar Senha</span></a>
                      
                      <input type="submit" value="Login"  style="float: left;padding: 4px 0px 4px 0px;font-family: Tahoma; font-size: 12px;font-weight:bold;color:#6699cc;
                      margin: 20px 0px 0px 380px;border: 2px solid #D3D3D3;background: #F5F5F5;clear: both;-moz-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px;"/>
                      
                      
                      
                      <?php
                          @$log = $_GET['log'];
                          
                          if($log==1)
                          {
                              echo'<script> alert("Login ou senha incorreto.")</script>';                              
                          }else
                          {
                              if($log==2)
                                  echo'<script> alert("Usuario sem permissão.")</script>';
                          }
                          
                      ?>                    
            </form>
Com o Action submeto os dados para o documento dentro da pasta util=> util login.php
<?php
    
    require_once('../dao/UserDAO.php');
    
    $login = $_POST['login'];
    $senha = $_POST['senha'];
    
    $usr = new UserDao(); 
    $usuario =  $usr->logar($login, $senha);
    
    
        
    if($usuario == null){
        include "protege.php";
        
        $protege = new protege();
        $protege->destroiSession();        
    }else{    
        if($usuario=="cliente"){
            header("location:../view/vizualizarCliente.php");                        
        }else{
            header("location:../view/cadastro.php");
        }
    }
?>
E tem o protege dentro da pasta util protege.php pra fazer o tratamento.
<?php
class protege{
    public function userlog(){
        session_start();
        if( $_SESSION['tipo'] == '' || $_SESSION['email'] == ''){
            header("location:login.php");
        }
    }
    
    public function userProtege($idperm, $idUser){
                
        if(    !($idperm == $idUser) || $idUser == ''){            
            $this->destroiSemPermissao();
        }
    }
    public function destroi(){
        session_start();
        $_SESSION = array();
        session_destroy();        
        header("location:../view/login.php");        
    }
    public function destroiSession(){
        session_start();
        $_SESSION = array();
        session_destroy();        
        header("location:../view/login.php?log=1");        
    }
    
    public function destroiSemPermissao(){
        session_start();
        $_SESSION = array();
        session_destroy();        
        header("location:../view/login.php?log=2");    
        
    }
}
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...