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

Erro com metodos?


Diego.G.A

Pergunta

Ai ta dando um eero na chamada da minha função mas eu já verifiquei o codigo a não tem nada errado.

Eu já mandei listar todos os metodos da minha classe e esse meu metodo não aparece.

Ai eu fiz uma verificação de existia o metodo mas ele diz que não, como pode dizer que não se o metodo faz parte da classe?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

A classe:

// CLASSE "LoginAdmin"
class LoginAdmin extends MySQL {
    
    // função para efetuar o login
    function logar($login,$senha) {
        $conn    = $this->conecta();
        $login    = strtolower($login);
        $sql    = "SELECT Login,Senha FROM tbl_admin WHERE Login='".$login."'";
        $vLogin    = $this->validaLogin($sql);
        if(!$vLogin) {
            $msg = urlencode("Seu login é inválido!");
            header("Location: index.php?msg=".$msg);
            exit();
        } else {
            $sSenha = $this->validaSenha($senha,$sql);
            if(!$sSenha) {
                $msg = urlencode("Sua senha esta inválida!");
                header("Location: index.php?msg=".$msg);
                exit();
            } else {
                session_start();
                $_SESSION['loginAdmin'] = $login;
                $_SESSION['senhaAdmin'] = $senha;
                $_SESSION['nomeAdmin']    = $this->setNomeAdmin ($login);
                $_SESSION['idAdmin']    = $this->setIdAdmin($login);
                header("Location: index2.php");
                exit();
            }
        }
        $this->desconecta($conn);
    } // FIM->função "logar()"
    
    // função que pega o nome do admin
    function setNomeAdmin($login) {
        $conn    = $this->conecta();
        $sql    = "SELECT Nome FROM tbl_admin WHERE Login='".$login."'";
        $query    = $this->query($sql);
        $l        = mysql_fetch_object($query[0]);
        return $l->Nome;
        $this->desconecta($conn);
    } // FIM->função "setNomeAdmin()"
    
    // função que pega o id do admin
    function setIdAdmin($login) {
        $conn    = $this->conecta();
        $sql    = "SELECT * FROM tbl_admin WHERE Login='".$login."'";
        $query    = $this->query($sql);
        $l        = mysql_fetch_object($query[0]);
        return $l->ID;
        $this->desconecta($conn);
    } // FIM->função "setIdAdmin()"
    
    // função para validar o login
    function validaLogin($sql) {
        $query = $this->query($sql);
        if($query[1] > 0) {
            return true;
        } else {
            return false;
        }
    } // FIM->função "validaLogin()"
    
    // função para validar senha
    function validaSenha($senha,$sql) {
        $query        = $this->query($sql);
        $senhaDB    = mysql_fetch_object($query[0]);
        $senhaDB    = $senhaDB->Senha;
        $senhaMd5    = md5($senha);
        if($senhaDB == $senhaMd5) {
            return true;
        } else {
            return false;
        }
    } // FIM->função "validaSenha()"
    
    // funçãp para validar a sessão do administrador
    function validaSessao($sLogin,$sSenha) {
        $conn = $this->conecta();
        if(!(isset($sLogin) and isset($sSenha))) {
            $msg = urlencode("Você não esta logado!");
            header("Location: index.php?msg=".$msg);
            exit();
        } else {
            $login = $sLogin;
            $senha = $sSenha;
            $login = strtolower($login);
            if(empty($login) and empty($senha)) {
                $msg = urlencode("Você não esta logado!");
                header("Location: ../?msg=".$msg);
                exit();
            } else {
                $sql    = "SELECT Login,Senha FROM tbl_admin WHERE Login='".$login."'";
                $vLogin    = $this->validaLogin($sql);
                if(!$vLogin) {
                    unset($_SESSION['loginAdmin']);
                    unset($_SESSION['senhaAdmin']);
                    $msg = urlencode("Você não esta logado!");
                    header("Location: ../?msg=".$msg);
                    exit();
                } else {
                    $vSenha = $this->validaSenha($senha,$sql);
                    if(!$vSenha) {
                        unset($_SESSION['loginAdmin']);
                        unset($_SESSION['senhaAdmin']);
                        $msg = urlencode("Você não esta logado!");
                        header("Location: ../?msg=".$msg);
                        exit();
                    }                        
                }
            }
        }
        $this->desconecta($conn);
    } // FIM->função "validaSessao()"
    
    // função para destruir a sessão do administrador
    function deslogar() {
        session_start();
        $_SESSION = array();
        session_destroy();
        $msg = urlencode("Você esta deslogado!");
        header("Location: index.php?msg=".$msg);
        exit();
    }// FIM->função "deslogar()"
    
} // FIM->classe "LoginAdmin"
?>
ai eu criei uma instancia dela em outra pg assim:
<?php
include("Classes/LoginAdmin.php");

$loginAdmin = new LoginAdmin;

$loginAdmin->logar($_POST['login'],$_POST['senha']);
?>
ate ai tudo certo mas quando ele vai criar a sessão ele gera um erro dizendo que a chamada da função
$this->setNomeAdmin ($login);
$this->setIdAdmin($login);

ta errado dizendo que elas não exitem, ai eu mandei imprimir todos os metodos da minha classe

e essas funções não são listadas la mas elas pertencem a esta classe.

como você pode ver elas são a segunda e terceira função da classe.

Link para o comentário
Compartilhar em outros sites

  • 0

esses dois metodos estão sendo chamados dentro da função logar() como mostra o code abaixo:

// função para efetuar o login
     function logar($login,$senha) {
         $conn    = $this->conecta();
         $login    = strtolower($login);
         $sql    = "SELECT Login,Senha FROM tbl_admin WHERE Login='".$login."'";
         $vLogin    = $this->validaLogin($sql);
         if(!$vLogin) {
             $msg = urlencode("Seu login é inválido!");
             header("Location: index.php?msg=".$msg);
             exit();
         } else {
             $sSenha = $this->validaSenha($senha,$sql);
             if(!$sSenha) {
                 $msg = urlencode("Sua senha esta inválida!");
                 header("Location: index.php?msg=".$msg);
                 exit();
             } else {
                 session_start();
                 $_SESSION['loginAdmin'] = $login;
                 $_SESSION['senhaAdmin'] = $senha;
                 $_SESSION['nomeAdmin']    = $this->setNomeAdmin ($login);
                 $_SESSION['idAdmin']    = $this->setIdAdmin($login);
                 header("Location: index2.php");
                 exit();
             }
         }
         $this->desconecta($conn);
     } // FIM->função "logar()"
$_SESSION['nomeAdmin']    = $this->setNomeAdmin ($login);
 $_SESSION['idAdmin']    = $this->setIdAdmin($login);
e sobre achamada de metodos fora da classe eu fiz isso aki:
include("Classes/LoginAdmin.php");
 $loginAdmin    = new LoginAdmin;
 session_start();
 $loginAdmin->validaSessao($_SESSION['loginAdmin'],$_SESSION['senhaAdmin']);

a chamada da função validaSessao() ta dando erro tambem.

outra quando eu chamo o metodo conecta da classe extendida MySQL ele diz que não existe o metodo mas ele existe.

Editado por Diego.G.A
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
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...