Diego.G.A Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 como você criou o método e como o está chamando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.G.A Postado Janeiro 22, 2008 Autor Denunciar Share Postado Janeiro 22, 2008 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 classee 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 Se você estiver chamando esses dois métodos fora da classe, não use $this, use $loginAdmin, que é a instância de objeto já criada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.G.A Postado Janeiro 22, 2008 Autor Denunciar Share Postado Janeiro 22, 2008 (editado) 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 Janeiro 22, 2008 por Diego.G.A Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Diego.G.A
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
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.