RamonTav 1 Denunciar post Postado Agosto 24, 2012 Olá pessoal estou trabalhando com um script de administração estava indo tudo certinho mais me deparei com um erro que ainda n consegui resolver vou postar aqui o arquivo do banco.class e usuario.class usuarios.class.php: <?php require_once(dirname(__FILE__).'/autoload.php'); protegeArquivo(basename(__FILE__)); class usuarios extends base{ public function __construct($campos=array()){ parent::__construct(); $this->tabela = "adm_usuarios"; if(sizeof($campos)<=0): $this->campos_valores = array( "nome" => NULL, "email" => NULL, "login" => NULL, "senha" => NULL, "ativo" => NULL, "administrador" => NULL, "datacad" => NULL, ); else: $this->campos_valores = $campos; endif; $this->campopk = "id"; }//construct public function doLogin($objeto){ $objeto->extras_select = "WHERE login='".$objeto->getValor('login')."' AND senha='".codificaSenha($objeto->getValor('senha'))."' AND ativo='s'"; $this-> ($objeto); if ($this->linhasafetadas==1): return TRUE; else: return FALSE; endif; } }//fim classe clientes ?> banco.class.php <?php require_once(dirname(__FILE__).'/autoload.php'); protegeArquivo(basename(__FILE__)); abstract class banco{ public $servidor = DBHOST; public $usuario = DBUSER; public $senha = DBPASS; public $nomebanco = DBNAME; public $conexao = NULL; public $dataset = NULL; public $linhasafetadas = -1; //metodos public function __construct(){ $this->conecta(); }//construct public function __destruct(){ if($this->conexao != NULL): mysql_close($this->conexao); endif; }//destruct public function conecta(){ $this->conexao = mysql_connect($this->servidor,$this->usuario,$this->senha,TRUE) or die($this->trataerro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE)); mysql_select_db($this->nomebanco) or die($this->trataerro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE)); mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); }//conecta public function inserir($objeto){ $sql = "INSERT INTO ".$objeto->tabela." ("; for($i=0; $i<count($objeto->campos_valores); $i++): $sql .= key($bjeto->campos_valores); if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= ") "; endif; next($objeto->campos_valores); endfor; reset($objeto->campos_valores); $sql .= "VALUES ("; for($i=0; $i<count($objeto->campos_valores); $i++): $sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ? $objeto->campos_valores[key($objeto->campos_valores)] : "'".$objeto->campos_valores[key($objeto->campos_valores)]."'"; if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= ") "; endif; next($objeto->campos_valores); endfor; return $this->executaSQL($sql); }//inserir public function atualizar($objeto){ $sql ="UPDATE ".$objeto->tabela." SET "; for($i=0; $i<count($objeto->campos_valores); $i++): $sql .= key($bjeto->campos_valores)."="; $sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ? $objeto->campos_valores[key($objeto->campos_valores)] : "'".$objeto->campos_valores[key($objeto->campos_valores)]."'"; if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= " "; endif; next($objeto->campos_valores); endfor; $sql .= "WHERE ".$objeto->campopk."="; $sql .= is_numeric($objeto->valorpk) ? $objeto->valorpk : "'".$objeto->valorpk."'"; return $this->executaSQL($sql); }//atualizar public function deletar($objeto){ $sql ="DELETE FROM ".$objeto->tabela; $sql .= " WHERE ".$objeto->campopk."="; $sql .= is_numeric($objeto->valorpk) ? $objeto->valorpk : "'".$objeto->valorpk."'"; return $this->executaSQL($sql); }//deletar public function selecionaTudo($objeto){ $sql = "SELECT * FROM ".$objeto->tabela; if($objeto->extras_select!=NULL): $sql .= " ".$objeto->extras_select; endif; return $this->executaSQL($slq); }//seleciona tudo public function selecionaCampos($objeto){ $sql = "SELECT "; for($i=0; $i<count($objeto->campos_valores); $i++): $sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ? $objeto->campos_valores[key($objeto->campos_valores)] : "'".$objeto->campos_valores[key($objeto->campos_valores)]."'"; if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= " "; endif; next($objeto->campos_valores); endfor; $sql .= " FROM ".$objeto->tabela; if($objeto->extras_select!=NULL): $sql .= " ".$objeto->extras_select; endif; return $this->executaSQL($slq); }//seleciona campos public function executaSQL($sql=NULL){ if($sql!=NULL): $query = mysql_query($sql) or $this->trataerro(__FILE__,__FUNCTION__); $this->linhasafetadas = mysql_affected_rows($this->conexao); if(substr(trim(strtolower($sql)),0,6)=='select'): $this->dataset = $query; return $query; else: return $this->linhasafetadas; endif; else: $this->trataerro(__FILE__,__FUNCTION__,NULL,'Comando SQL nao informado na rotina', FALSE); endif; }//executa SQL public function retornaDados($tipo=NULL){ switch (strtolower($tipo)): case "array": return mysql_fetch_array($this->dataset); break; case "assoc": return mysql_fetch_assoc($this->dataset); break; case "object": return mysql_fetch_object($this->dataset); break; default: return mysql_fetch_object($this->dataset); break; endswitch; }//retorna Dados public function trataerro($arquivo=NULL,$rotina=NULL,$numerro=NULL,$msgerro=NULL,$geraexcept=FALSE){ if($arquivo==NULL) $arquivo="nao informado"; if($rotina==NULL) $rotina="nao informada"; if($numerro==NULL) $numerro=mysql_errno($this->conexao); if($msgerro==NULL) $msgerro=mysql_error($this->conexao); $resultado = 'Ocorreu um erro com os seguintes detalhes:<br /> <strong>Arquivo:</strong> '.$arquivo.'<br /> <strong>Rotina:</strong> '.$rotina.'<br /> <strong>Codigo:</strong> '.$numerro.'<br /> <strong>Mensagem:</strong> '.$msgerro; if($geraexcept==FALSE): echo($resultado); else: die($resultado); endif; }//trataerro }// fim classe banco ?> Se alguém, puder min ajudar agradeço estou a muito tempo tentando resolver e sem sucesso =/ Vlw mesmo galera! Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Agosto 24, 2012 qual a linha do erro? Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Agosto 24, 2012 on line 24 mals esqueci da linha :D Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 24, 2012 Fatal error: Call to undefined method usuarios::getValor() O erro por si só define o problema. Não existe o método getValor() na classe usuário. Veja que usuário herda a classe base. Esse método, deveria estar aonde? Usuário ou Base? O que deve retornar esse método? Valor do que? Foi você quem desenvolveu as classes? Inclua o método, e tudo irá funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Agosto 24, 2012 qual a linha do erro? on line 24 maus esquci de por a linha do erro :) desculpa ai respostas dulpas foi pq deu erro na hora aqui de postar ai repitiu minha net n esta ajudando muito =/ tenho tbm esta página aqui usuarios.php <?php require_once(dirname(dirname(__FILE__))."/funcoes.php"); protegeArquivo(basename(__FILE__)); loadJS('jquery-validate'); loadJS('jquery-validate-messages'); switch ($tela): case 'login': if(isset($_POST['logar'])): $user = new usuarios(); $user->setValor('login',$_POST['usuario']); $user->setValor('senha',$_POST['senha']); if ($user->doLogin($user)): redireciona('painel.php'); else: redireciona('?erro=2'); endif; endif; ?> <script type="text/javascript"> $(document).ready(function(){ $(".userform").validate({ rules:{ usuario:{required:true, minlenght:3}, senha:{required:true, rangelength:[4,10]}, } }); }); </script> <div id="loginform"> <form class="userform" method="post" action=""> <fieldset> <legend>Acesso restrito, indentifique-se</legend> <ul> <li> <label for="usuario">Usuário:</label> <input type="text" size="35" name="usuario" value="<?php echo $_POST['usuario'];?>" /> </li> <li> <label for="senha">Senha:</label> <input type="password" size="35" name="senha" value="<?php echo $_POST['senha'];?>" /> </li> <li class="center"><input type="submit" name="logar" value="Login" /></li> </ul> <?php $erro = $_GET['erro']; switch ($erro): case 1: echo '<div class="sucesso">Você fez logoff do sistema.</div>'; break; case 2: echo '<div class="erro">Dados incorretos ou usuário inativo.</div>'; break; case 3: echo '<div class="erro">Faça login antes de acessar a página solicitada.</div>'; break; endswitch; ?> </fieldset> </form> </div> <?php break; default: echo '<p>A tela solicitada não existe.</p>'; break; endswitch; ?> Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Agosto 24, 2012 essa linha ? $this-> ($objeto); Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 24, 2012 Mostre a classe Base também. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Agosto 24, 2012 essa linha ? $this-> ($objeto); Fatal error: Call to undefined method usuarios::getValor() in D:\wamp\www\anima_kids\admin\classes\usuarios.class.php on line 24 base.class.php <?php require_once(dirname(__FILE__).'/autoload.php'); protegeArquivo(basename(__FILE__)); abstract class base extends banco{ //propriedades public $tabela = ""; public $campos_valores = array(); public $campopk = NULL; public $valorpk = NULL; public $extras_select = ""; //metodos public function addCampo($campo=NULL,$valor=NULL){ if($campo!=NULL): $this->campos_valores[$campo] = $valor; endif; }//addCampo public function delCampo($campo=NULL){ if(array_key_exists($campo,$this->campos_valores)): unset($this->campos_valores[$campo]); endif; }//delCampo public function setValor($campo=NULL,$valor=NULL){ if($campo!=NULL && $valor!=NULL): $this->campos_valores[$campo] = $valor; endif; }//setValor public function getVaor($campo=NULL){ if($campo!=NULL && array_key_exists($campo,$this->campos_valores)): return $this->campos_valores[$campo]; else: return FALSE; endif; }//getValor }//fim classe base ?> Desculpa ai pessoal é pq minha net ta um lixo ai estou clicando nos botões errados=/ base.class.php <?php require_once(dirname(__FILE__).'/autoload.php'); protegeArquivo(basename(__FILE__)); abstract class base extends banco{ //propriedades public $tabela = ""; public $campos_valores = array(); public $campopk = NULL; public $valorpk = NULL; public $extras_select = ""; //metodos public function addCampo($campo=NULL,$valor=NULL){ if($campo!=NULL): $this->campos_valores[$campo] = $valor; endif; }//addCampo public function delCampo($campo=NULL){ if(array_key_exists($campo,$this->campos_valores)): unset($this->campos_valores[$campo]); endif; }//delCampo public function setValor($campo=NULL,$valor=NULL){ if($campo!=NULL && $valor!=NULL): $this->campos_valores[$campo] = $valor; endif; }//setValor public function getVaor($campo=NULL){ if($campo!=NULL && array_key_exists($campo,$this->campos_valores)): return $this->campos_valores[$campo]; else: return FALSE; endif; }//getValor }//fim classe base ?> a kara ja descobri o é sou um ze pamonha mermo 1 semana tentando resolver isto =/ FIquei até com vergonha velho ! Desculpa mermo pessoal estava faltando uma mizera letra no getValor oia que eu revisei isso pacas RESOLVIDO! Compartilhar este post Link para o post Compartilhar em outros sites