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

Retorno vazio


Diego.G.A

Pergunta

Ai minha função esta retornando vazio, mas não era pra retornar vazio, ela deveria retornar true ou false

codigo abaixo:

MySQL.php

<?php
// CLASSE USADA PARA CONECATAR AO SERVIDOR E BANCO DE DADOS
class MySQL {
    
    // VARIAVEIS PARA CONEXÃO COM O SERVIDOR E BANCO DE DADOS
    private static $server    = "localhost";
    private static $usuario = "root";
    private static $senha    = "";
    private static $banco    = "SuperLojaPHP";
    
    // FUNÇÃO PARA CONECTAR-SE AO SERVIDOR E BANCO
    public function conecta() {
        $msgErroServer = "Erro ao conectar com o servidor.<br>".mysql_error();
        // conecta no servidor
        $conn = mysql_connect(self::$server,self::$usuario,self::$senha) or die($msgErroServer);
        $msgErroDB = "Erro ao conectar-se com o banco.<br>".mysql_error();
        // conecta no banco
        mysql_select_db(self::$banco,$conn) or die($msgErroDB);
        // retorna conexão com o servidor
        return $conn;
    }

    // FUNÇÃO QUE DESCONECTA DO SERVIDOR
    public function desconecta($var) {
        // fecha a conexão informada com o servidor
        return mysql_close($var);
    }

    // FUNÇÃO QUE RETORNA A QUERY E O NUMERO DE REGISTROS
    // ENCONTRADOS, E PASSA PARA UM ARRAY
    public function query($sql) {
        // faz a query no sql informado
        $query = mysql_query($sql);
        // conta quantos registros foram encontrados
        $num = mysql_num_rows($query);
        // passa para um array e retorna esse array na função
        $arr = array($query,$num);
        return $arr;
    }
}
?>
LoginAdmin.php
<?php
// CLASSE PARA EFETUAR O LOGIN DO ADMINISTRADOR
class LoginAdmin extends MySQL {
    
    // FUNÇÃO QUE EFETUA O LOGIN
    public function logar($login,$senha) {
        // chama a função "conecta()" da classe "MySQL"
        // para abrir conexão com o banco
        $conecta = parent::conecta();
        // faz consulta para verificar se o login existe
        $sql    = "SELECT * FROM slp_admin WHERE Login='".strtolower($login)."'";
        // chama a função que vai fazer a consulta da validade do login
        // a função "verificaLogin()" da classe "LoginAdmin"
        $vLogin = self::verificaLogin($sql);
        // verifica se é verdadeiro
        if(!$vLogin) {
            // se o login não exitir mostra uma msg de erro
            $msg  = "Login invalido.";
            header("Location: index.php?msg=".urlencode($msg));
        } else {
            // se o login existir chama a função "verificaSenha()"
            // da classe "LoginAdmin" para verificar a senha do administrador
            $vSenha = self::verificaSenha($senha,$sql);
            // verifica se é verdadeiro
            if(!$vSenha) {
                // se a senha estiver errada mostra uma msg de erro
                $msg  = "Senha invalida.";
                header("Location: index.php?msg=".urlencode($msg));
            } else {
                // se a senha estiver correta chama a função "validaAtividade()"
                // da classe "LoginAdmin"
                $vEstado = self::validaAtividade($sql);
                // verifica se é verdadeiro
                if(!$vEstado) {
                    // se a conta do administrador não estiver ativada mostra
                    // uma msg de erro
                    $msg = "Você esta desativado.";
                    $msg += "\nConsequentemente não podera acessar esta sessão.";
                    header("Location: index.php?msg=".urlencode($msg));
                } else {
                    // se a conta do administrador estiver ativada
                    // chama a função "criaSessao()" da classe "LoginAdmin"
                    // para criar a sessão do administrador e redirecionar
                    // para a página de administração
                    self::criaSessao(strtolower($login),$senha);
                }
            }
        }
        // chama a função "desconecta()" da classe "MySQL"
        // para fechar a conexão com o banco
        parent::desconecta($conecta);
    } // FECHA->logar()

    // FUNÇÃO VALIDA SESSION ADMINISTRADOR
    public function validaSessao($sLogin,$sSenha) {
        // chama a função "conecta()" extendida da classe "MySQL"
        // para abrir a conexão com o servidor e o banco
        $conect = parent::conecta();
        // verifica se existem as sessões passadas na chamada da função
        if(!(isset($sLogin) and isset($sSenha))) {
            // se não existir redireciona para a página de login
            $msg = "Você não esta logado1.";
            header("Location: index.php?msg=".urlencode($msg));
            exit();
        } else {
            // caso exista atribui apara as variaveis
            $login = $sLogin;
            $senha = sSenha;
            // verifica se as variaveis estão vazias
            if(empty($login) and empty($senha)) {
                // caso não estejão redireciona para a página de login
                $msg = "Você não esta logado2.";
                header("Location: index.php?msg=".urlencode($msg));
                exit();
            } else {
                // se estiverem atribuidas as variaveis verifica se o login esta
                // correto e consta na lista de administradores
                $sql = "SELECT * FROM slp_admin WHERE Login='".strtolower($login)."'";
                // chama a função "verificaLogin();" da classe "LoginAdmin"
                $vLogin = self::verificaLogin($sql);
                // verifica se o retorno dela e verdadeiro
                if(!$vLogin) {
                    // se o login for falso apaga as sessões que existem
                    // e redireciona para a página de login
                    unset($_SESSION['loginAdmin']);
                    unset($_SESSION['senhaAdmin']);
                    
                    $msg = "Você não esta logado3.";
                    header("Location: index.php?msg=".urlencode($msg));
                    exit();
                } else {
                    // se o login estiver correto verifica a senha do administrador
                    // chama a função "verificaSenha()" da classe "LoginAdmin"
                    $vSenha = self::verificaSenha($senha,$sql);
                    // verifica se o retorno é verdadeiro
                    if(!$vSenha) {
                        // se a senha estiver errada apaga as sessões existentes
                        // e redireciona para a página de login
                        unset($_SESSION['loginAdmin']);
                        unset($_SESSION['senhaAdmin']);
                        
                        $msg = "Você não esta logado4.";
                        header("Location: index.php?msg=".urlencode($msg));
                        exit();
                    } else {
                        // se a senha estiver correta verifica se o administrador
                        // esta com a conta ativada
                        // chama a função "validaAtividade()" da classe "LoginAdmin"
                        $vEstado = self::validaAtividade($sql);
                        // verifica se é verdadeiro
                        if(!$vEstado) {
                            // se o retorno for falso apaga as sessões que existem
                            // e redireciona para a pagina de login
                            unset($_SESSION['loginAdmin']);
                            unset($_SESSION['senhaAdmin']);
                            
                            $msg = "Sua conta esta desativada.";
                            $msg += "\nPeça para o administrador principal ativala.";
                            header("Location: index.php?msg=".urlencode($msg));
                            exit();
                        }
                    }
                }
            }
        }
        // chama a função "desconecta()" extendida da classe "MySQL"
        // para fechar a conexão com o servidor
        parent::desconecta($conect);
    } // FECHA->validaSessao()

    // FUNÇÃO QUE VERIFICA SE O LOGIN DIGITADOR EXISTE
    private function verificaLogin($sql) {
        // chama a função "query()" da classe "MySQL"
        // que retorna um array com o resultado da query e
        // o numero de registros encontrados
        $num = parent::query($sql);
        // verifica se o numero de registros encontrados
        // e maior que zero
        if($num[1] > 0) {
            // se for maior retorna true
            return true;
        } else {
            // se for manor retorna false
            return false;
        }
    } // FECHA->verificaLogin()

    // FUNÇÃO QUE VERIFICA SE A SENHA DIGITADA É VALIDA
    private function verificaSenha($senha,$sql) {
        // chama a função "query()" da classe "MySQL"
        // que retorna um array com o resultado da query e
        // o numero de registros encontrados
        $query = parent::query($sql);
        // pega o resultado da query e fas um fetch_object
        $num         = mysql_fetch_object($query[0]);
        // pega a Senha do administrador
        $senhaDB     = $num->Senha;
        // converte a senha que vem do form em md5
        $senhaMd5     = md5($senha);
        // compara as senhas para ver se estão iguais
        if($senhaDB == $senhaMd5) {
            // retorna true se estiverem iguais
            return true;
        } else {
            // retorna falso se estiverem diferentes
            return false;
        }
    } // FECHA->verificaSenha()
    
    // FUNÇÃO QUE CRIA A SESSÃO DO ADMINISTRADOR
    // E REDIRECIONA PARA A AREA DE ADMINISTRAÇÃO
    private function criaSessao($login,$senha) {
        // inicializa a sessão
        @session_start();
        // passa os valores vindos do form
        // para as sessões
        $_SESSION['loginAdmin'] = $login;
        $_SESSION['senhaAdmin'] = $senha;
        // verifica se foram criada as sessões
        if(isset($_SESSION['loginAdmin']) and isset($_SESSION['senhaAdmin'])) {
            // se foram criadas redireciona para a página de administração
            header("Location: index2.php");
        } else {
            // se não foram informa uma msg de erro
            $msg = "Sessão não criada.";
            header("Location: index.php?msg=".urlencode($msg));
        }
    } // FECHA->criaSessao()
    
    // FUNÇÃO PARA DESLOGAR A SESSÃO
    public function deslogar() {
        // inicialisa a sessão
        @session_start();
        // passa um array vazio para a sessão
        $_SESSION[''] = array();
        // apaga todas as sessões
        session_destroy();
        // redireciona para a página de login
        header("Location: index.php");
    } // FECHA->deslogar()
    
    // FUNÇÃO PARA VERIFICAR SE O ADMINISTRADOR
    // ESTA ABILITADO COMO ATIVO
    private function validaAtividade($sql) {
        // chama a função "query()" da classe "MySQL"
        // que retorna um array com o resultado da query e
        // o numero de registros encontrados
        $query = parent::query($sql);
        // faz um fetch_object no resultado da query
        $num = mysql_fetch_object($query[0]);
        // pega o valor da Atividade da conta
        // do administrador
        $val = $num->Atividade;
        // verifica se o estado é igual a 1 se for
        // a conta esta ativada
        if($num == 1) {
            // se for verdadeiro retorna true
            return true;
        } else {
            // se for falso retorna false
            return false;
        }
    } // FECHA-> validaAtividade()

} // FECHA->CLASSE
?>

eu queria saber porque ta acontecendo isso aqui, já tentei quase tudo aqui mas continua isso.

a função que eu me refiro la no topo é função "verificaSenha()" da classse "LoginAdmin".

eu chamo ela duas vezes uma na função "logar()" nessa ocorre tudo bem

mas na "validaSessao()" é onde ta dando o erro!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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
      152,3k
    • Posts
      652k
×
×
  • Criar Novo...