Ir para conteúdo

POWERED BY:

Arquivado

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

IceCOld

[Resolvido] Classes não instanciam

Recommended Posts

seguinte galera, estou com um problema sério. minhas classes no php não estão instanciando. elas não funcionam..

estou achando que pode ser algo no apache.. adicionei umas extensions do php como a php_class e a php_runkit... mais ainda assim não funciona.. o que será que é??

 

Página que fará o cadastro:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Deleane Folheados - Sistema de Controle de Estoque</title>
<?php
include "categoria.class.php";
				if($_SERVER['REQUEST_METHOD'] == 'POST'){
					$nome1 = $_POST['nome'];
						$obj = new Categoria();
							$obj->setCadCat($nome1);
				}
			?>
</head>

<body>
<div id="pagina">
	<?php
		include "menu.php";
	?>
  <div id="conteudo">
    <form id="form1" name="form1" method="post" action="categoria.php">
      <table width="500" border="0" cellspacing="3" cellpadding="3">
        <tr>
          <td width="52"><strong>Nome:</strong></td>
          <td width="427"><label><input name="nome" type="text" id="nome" size="50" /></label></td>
        </tr>
        <tr>
          <td> </td>
          <td><label><input type="submit" name="cadastrar" id="cadastrar" value="Cadastrar" /></label></td>
        </tr>
      </table>
        </form>
   </div>                  
 <div style="clear: both;"></div> 
</div>
</body>
</html>

Classe de conexão

 

<?php
class mysql{

	public $login = "root";
	public $pass = "";
	public $server = "localhost";
	public $db = "dele_esto";
	
	function mysql(){
		$this->conecta();
	}
	
	function conecta(){
		$conexao = mysql_connect($this->server,$this->login,$this->pass);
			$dados = mysql_select_db($db,$conexao);
	}
}
?>

Classe de categoria

 

<?php
include "mysql.class.php";
class categoria{

	public $nome;
	
	function categoria(){
		$banco= new mysql();
	}
	
	public function setCadCat($nome){
			$sql = mysql_query("INSERT INTO dlf_categoria (nome) VALUE ('$nome')");
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual versão do php ?

 

Atente para o 'case sensitive':

$obj = new Categoria();

..

class categoria{

 

 

Deu algum erro? qual ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

php version 5.2.5

 

não é o case.. não da erro...

ele simplesmente não executa as funções.. tanto de conexão com o banco.. quanto a dos metodos da classe categoria..

o que mais pode ser??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte.

 

$obj = new Categoria();
var_dump($obj);
exit;
$obj->setCadCat($nome1);

Poste aqui o que retornar. Antes disto, habilite todas as mensagens de erro do sistema, colocando este código no início do script.

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>

Veja se exibe algum erro e poste aqui também.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

apresento o seguinte..

 

Notice: Undefined variable: db in C:\webserver\deleane\mysql.class.php on line 15

object(categoria)#1 (1) { ["nome"]=> NULL }

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo muito obrigado pela sua ajuda, esse código que você me passou fez com que eu achasse o erro.

era na classe de conexão com o banco.. tinha esquecido de declarar o $this->db

 

$db é um atributo, mas no metodo de conexão eu tinha colocado ele como variavel auxiliar.

 

muito obrigado!

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.