Ir para conteúdo

Arquivado

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

danilolemoss

Formulário de cadastro PHPOO + PDO

Recommended Posts

Olá pessoal, primeiramente bom dia.

 

Sou um mero iniciante em PHP, gostaria que alguém me desse uma luz em relação a minha prática em orientação a objeto, pois acredito que com a prática eu consigo desenvolver mais o meu conhecimento, então vamos lá ...

 

Primeiramente eu tenho a página formulario.php:

<?php header ("content-type: text/html; charset=utf-8");
include ('Class.php');
?>
<html>
<head> 
	<title>Formulário</title> 
<body>
<form name="cadastro" method="POST" action="Class.php">
<center><fieldset style="width: 100px;">
<label><legend><h2>Formulário de cadastro</h2></legend>
<label>Nome:<input type="text" name="nome"></label><br>
<label>Login:<input type="text" name="login"></label><br>
<label>Senha:<input type="password" name="senha"></label><br>
</fieldset>
<input type="submit" name="cadastrar" value="Cadastrar">
</form>
</center>
</body>
</html>

Em segundo, o arquivo Class.php:

<?php
 class Banco {
 	# aTRIBUTOS DA CLASSE 
	public $nome;
	public $login;
	public $senha;
	# CONEXÃO COM O BANCO
	public function Conecta(){
		try{ $conecta = new PDO ("mysql=host:localhost;dbname=test","root","");
		}catch(PDOEXception $e){
			echo $e -> getmessage();
		}
		return $conecta;
	} 
	# FUNÇÃO CADASTRAR
	public function Cadastrar(){

		$login=$_GET["login"];
		$busca=$conecta->prepare("insert into usuario (nome,login,senha) values (:nome,:login,:senha");
		$busca->bindValue(":nome",$nome);
		$busca->bindValue(":login",$login);
		$busca->bindValue(":senha",$senha);

		$validar=$conecta->prepare("select * from usuario where login=?");
		$validar->execute(array($login));
			if ($validar->rowCount() == 0):
		$busca->execute();
				else:
					echo "Cadastro existente";
				endif;
	}
}
?>

Bom, parei nesta parte e não sei como prosseguir para inserção dos dados direto no banco ...

Alguém pode me ajudar ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa dar include de Class.php no seu form. O script será chamado ao enviar o formulário

 

O método Cadastrar() não chama o método Conecta() e a variável $conecta não existe, sendo impossível chamar prepare() nela

 

Você já fez um cadastro assim sem usar classes? Se não, comece por aí. Veja este meu artigo

 

Depois de aprender a fazer sem classes, aí sim pense em como estruturar com Classes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que o Beraldo disse, se mesmo assim desejar ir de OOP, o correto também é desacoplar, ou seja, separar em camadas suas entidades e classes

 

 

Exemplo Básico

<?php

class Banco
{

	public function __construct(argument)
	{
		# code...
	}

}



class Login
{

	public function __construct(Banco $db)
	{
		# code...
	}

	public function cadastrar($value='')
	{
		# code...
	}

}

$login = new Login(new Banco);
$login->cadastrar(argument);


Pesquise também por injeção de dependência

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.