Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo de Andrade

Usando classe...

Recommended Posts

Olá, estou com um problema... estou começando a usar classes e tentando reformular meus scripts ja prontos, o que estou tentando agora é o script de cadastro, so que nao consigo e nao acho explicações decentes a ponto de fazer isso... gostaria de que alguem me ajudasse com algum exemplo... nao tenho como postar o codigo agora pois estou no trampo...

 

como eu teria que chamar as funções dentro da classe, tipo a função para verificar se ja existe login, a função de cadastro... e talz, o basico de uma classe eu sei ( pelo menos eu acho :D )...

 

obrigado... ;D~

Compartilhar este post


Link para o post
Compartilhar em outros sites

estancia a classe numa variavel dpois pra acessa a funcao pega e usa " -> " ...

 

$classe = New Verificador($var1, $var2);
$classe->Login($varfuncao);

valww espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom se você conheçe conceito de orientação a objeto, pode ser até de outra linguagem não muda muito, se é metodo static você usa :: se for instancia usa ->;

 

public class Teste

{

 

private $nome;

public static function teste1()

{

echo("teste1");

}

public function retorna_nome()

{

return $this->nome;

}

 

 

}

 

//chamando metodo static

Teste::teste1();

 

 

//metodo normal requer instancia

 

$teste = new Teste();

//chamando um metodo comum

$teste->retorna_nome();

 

 

acho que isso pode lhe ajudar:

www.lozano.eti.br/palestras/oo-php.pdf

 

http://www.criarweb.com/artigos/330.php

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela atenção...

 

mas quer dizer que na minha classe de cadastro eu teria de fazer :

 

vou tentar lembrar como ta o script resumido x.x :

 

class cadastro
{

var $nome;

function dados()
{
$this->nome = $_POST['nome'];
}

function verifica_nome()
{
blablabla... as funções para verificar se ja existe no BD...
}

function inserir()
{
$this->inserir_db = mysql_query("INSERT INTO usuarios (nome) VALUES ($nome)")
}

}

isso de uma forma miseravelmente reduzida... dai onde devo instanciar os objetos ?

 

tipo como você disse :

 

$cadastrar = new cadastro;

$cadastrar->verifica_nome();

$cadastrar->inserir();

 

como funcionaria a verificação e a inserção dos dados?

 

obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde você for usar, por exemplo normalmente trabalho com session ai para usar minhas classes tranquilamente eu tenho funções pra ela guardar dados emsession e recuperar na outra pagina so reinstanciando o objeto e executando um metodo.

 

Se você por exemplo tem lá sua página de cadastro, provavelmente vai ter algum metodo pra cadastrar na sua classe ai dentro dessa página você instancia sua classe e usa seus metodos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta classe não é a classe real, vou fazer algumas observações, mas não sei se está assim...

 

class cadastro
{

var $nome;// não se usa mais VAR ... use public, private ou outros

function dados()
{
$this->nome = $_POST['nome'];
}

function verifica_nome()
{
blablabla... as funções para verificar se ja existe no BD...
}

function inserir()
{
$this->inserir_db = mysql_query("INSERT INTO usuarios (nome) VALUES ($nome)")// esta variável nome não existe. existe a $this->nome, mas só depois de você setar ela.
}

}

Aquele material está meio desatualizado... Olha este aqui. http://www.apostilando.com/download.php?co...p;categoria=PHP

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos...

 

Matias obrigado a dica, mas no proprio codigo so estava utilizando var, o exemplo da variavel $nome eu nao utilizei ;D

ela com o restando do codigo se econtra como $this->nome assim como você referenciou... mas vou tentar dar mais umas olhadas ate cair a ficha ><"

 

vou pesquisar mais umas coisas, pq sinceramente ainda nao sei exatamente fazer o que pretendo com classe x_X

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu começei com classes por que venho do .net, e depois que muda o pensamento é dificil programar extruturado, como é dificil sair do extruturado para orientado a objeto, mas com o tempo, estudando até compensa economiza bastante codigo.

 

bom estudo ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com certeza vale bem a pena...

Estou penando um pouco na transição do estruturado para o OO, mas cada dia que passa vejo como é melhor OO.

Uma coisa que me ajudou bastante é o editor. Uso o Zend Studio. Facilita bastante, porque se você faz alguma coisa errada ele te avisa, você começa a escrever o objeto e ele te dá as opções de funções, objetos e variáveis da classe...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu novamente... aproveitar o tópico :)

 

seguinte... eu consegui a classe de cadastro, agora no meio dela tem a função para gerar a senha aleatória, e a senha não está entrando no BD... to meio doente e não consegui ficar muito tempo raciocinando o que estaria dando errado... alguém poderia me dar uma dica ?

 

aqui está o código :

[php]
<?

	include "config.php";
	include "verifica.php";

class cadastro
{

# Dados do formulário
public $nome;
public $sobrenome;
public $sexo;
public $telefone;
public $login;
public $email;
public $email2;

	function __construct()
	{
		$this->nome 		= anti_injection($_POST["nome"]);
		$this->sobrenome 	= anti_injection($_POST["sobrenome"]);
		$this->sexo 		= anti_injection($_POST["sexo"]);
		$this->telefone 	= anti_injection($_POST["telefone"]);
		$this->login 		= anti_injection($_POST["login"]);
		$this->email		= anti_injection($_POST["email"]);
		$this->email2		= anti_injection($_POST["email2"]);
	}

# Consulta de Login
	function verifica_login()
	{
		$this->pesquisar_login = mysql_query("SELECT * FROM usuarios WHERE login = '$this->login' ");
		$this->verifica_login  = mysql_num_rows($this->pesquisar_login); 
		if( $this->verifica_login == 1 )
		{
		$this->erro .= "Login escolhido já cadastrado.<br>";
		}
	}
# Consulta de Email
	function verifica_email()
	{
		$this->pesquisar_email = mysql_query("SELECT * FROM usuarios WHERE email = '$this->email' ");
		$this->verifica_email = mysql_num_rows($this->pesquisar_email); 
		if( $this->verifica_email == 1 ) 
		{
		$this->erro .= "Email escolhido já cadastrado.<br>"; 
		}
	}
	
# Dados em branco ou formato inválido
	function verifica_dados()
	{
		if ( $this->nome == "" ) 
		{
		$this->erro .= "Você não digitou seu nome.<br>"; 
		}
		if ( $this->sobrenome == "" ) 
		{
		$this->erro .= "Você não digitou seu sobrenome.<br>";
		}
		if ( $this->login == "" ) 
		{
		$this->erro .= "Você não digitou um login.<br>"; 
		}
		if ( $this->email == "" ) 
		{
		$this->erro .= "Você não digitou seu email.<br>"; 
		}
		if ( $this->email2 == "" ) 
		{
		$this->erro .= "Você não digitou a confirmação de email.<br>";
		}
		if ( $this->email != $this->email2 ) 
		{
		$this->erro .= "Você digitou 2 emails diferentes.<br>"; 
		}
		if(!(ereg ("^.[a-z0-9_-]+@.+\\..+$", $this->email))) 
		{
		$this->erro .= "Seu e-mail possui um formato inválido!<br>";
		}
	}

# Função para gerar senha aleatória
	function randompass()
	{  
		$this->salt = "abchefghjkmnpqrstuvwxyz0123456789";  
		srand((double)microtime()*1000000);   
		$this->i = 0;  
		while ($i <= 7)
		{  
		$this->num = rand() % 33;  
		$this->tmp = substr($salt, $num, 1);  
		$this->pass = $this->pass . $tmp;  
		$this->i++;  
		}  
		return $this->pass; 
	
	}  
 
 	public $senha_randomica;
	public $senha;
	
	function define_senha()
	{
 	$this->senha_randomica   =  randompass();  
	$this->senha = md5($this->senha_randomica);
 	}
  
# Inserir no BD e enviar um email com a senha para confirmação
	function inserir()
	{
		if ( $this->erro == "" ) 
		{ 
		$this->inserir_db = mysql_query("INSERT INTO usuarios ( nome, sobrenome, sexo, telefone, login, senha, email, data_cadastro)
		VALUES ('$this->nome','$this->sobrenome','$this->sexo','$this->telefone','$this->login','$this->senha','$this->email',now())"); 
		}
		if ( $this->inserir_db == 1 ) 
		{
	
		$this->id = mysql_insert_id();  
	
			
			 $this->headers = "MIME-Version: 1.0\n";  
			 $this->headers .= "Content-type: text/html; charset=iso-8859-1\n";  
			 $this->headers .= "From: Cães da Areia Rugby Clube - Webmaster<marcelinhodeandrade@hotmail.com>";  
	
			 $this->subject = "Confirmação de cadastro - caesdaareia.com.br";  
			 $this->mensagem  = "Prezado  {$this->nome} {$this->sobrenome},<br />   
			 Obrigado pelo seu cadastro em nosso site, <a href='http://www.caesdaareia.com.br'>  
			 http://www.caesdaareia.com.br</a>!<br /> <br />   
	
			 Para confirmar seu cadastro e atipublic sua conta em nosso site, podendo acessar à   
			 áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de   
			 endereço do seu navegador.<br /> <br />   
	
			 <a href='http://www.caesdaareia.com.br/ativar.php?id={$this->id}&code={$this->senha}'>'>http://www.caesdaareia.com.br/ativar.php?id={$this->id}&code={$this->senha}'>  
			 http://www.caesdaareia.com.br/ativar.php?id={$this->id}&code={$this->senha}  
			 </a>  
	
			 <br /> <br />   
			 Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo  
			 efetuado o login com os seguintes dados abaixo:<br > <br />   
	
			 <strong>Login</strong>: {$this->login}<br />   
			 <strong>Senha</strong>: {$this->senha}<br /> <br />   
	  
			 Obrigado!<br /> <br />   
	
			 Webmaster<br /> <br /> <br />   
			 Esta é uma mensagem automática, por favor não responda!";  
	
			 mail($this->email, $this->subject, $this->mensagem, $this->headers);  

			 $this->msg_sus = "Foi enviado para <strong>[ ".$this->email." ]</strong> um pedido de   
			 confirmação de cadastro, por favor verifique e sigas as   
			 instruções!"; 
			 
			// include "index.php";

		} 
	}

}

# --------------------------------

$cadastrar = new cadastro();

$cadastrar->verifica_dados();
$cadastrar->verifica_login();
$cadastrar->verifica_email();
$cadastrar->inserir();

echo $cadastrar->erro;
echo $cadastrar->msg_sus;


#----------------------------------

?>

[/php]

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.