Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RamonTav

[Resolvido] Fatal error: Call to undefined method usuarios::getVa

Recommended Posts

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

qual a linha do erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

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

essa linha ?

 

$this->	($objeto);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre a classe Base também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.