Aula 4: Desenvolvimento do Sistema de Cadastro de Usuários

Por: Nerd Toolkit Postado em: Abril 12, 2025 Visto por: 514

Nesta aula, você aprenderá a desenvolver o sistema de cadastro de usuários, que envolve a criação de uma interface amigável com Bootstrap e a implementação do backend em PHP orientado a objetos. Abordaremos desde a construção do formulário até a validação e inserção dos dados no banco de dados, garantindo segurança e organização.


1. Criação da Interface de Cadastro com Bootstrap

Vamos começar criando a página de cadastro, que servirá de formulário para os usuários inserirem seus dados. Este arquivo ficará na pasta /Views e chamaremos de cadastro.php.

 
<!-- Views/cadastro.php --> 
<!DOCTYPE html>
<html lang="pt-br">
<head>
  <meta charset="UTF-8">
  <title>Cadastro de Usuário</title>
  <!-- Link para o Bootstrap -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <h2 class="mb-4">Cadastro de Usuário</h2>
    <form action="../Controllers/cadastroController.php" method="post">
      <div class="form-group">
        <label for="nome">Nome Completo</label>
        <input type="text" class="form-control" name="nome" id="nome" placeholder="Seu nome completo" required>
      </div>
      <div class="form-group">
        <label for="email">E-mail</label>
        <input type="email" class="form-control" name="email" id="email" placeholder="Seu e-mail" required>
      </div>
      <div class="form-group">
        <label for="senha">Senha</label>
        <input type="password" class="form-control" name="senha" id="senha" placeholder="Crie uma senha" required>
      </div>
      <button type="submit" class="btn btn-primary">Cadastrar</button>
    </form>
  </div>
</body>
</html>

Dicas para SEO:

  • Utilize títulos claros e descrições nos labels para facilitar a indexação.

  • Inclua atributos placeholder para melhorar a usabilidade e fornecer contexto aos buscadores.


2. Implementação do Backend em PHP Orientado a Objetos

Para processar os dados enviados pelo formulário, criaremos um controlador chamado cadastroController.php na pasta /Controllers. Este arquivo receberá os dados do formulário, realizará validações básicas e utilizará a classe Usuario para inserir os dados no banco.

2.1. Criação do Controlador

 
<?php 
// Controllers/cadastroController.php 
require_once '../Classes/Database.php';
require_once '../Classes/Usuario.php';
// Verifica se o formulário foi enviado via POST 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Recebe e trata os dados do formulário
    $nome  = trim($_POST['nome']);
    $email = trim($_POST['email']);
    $senha = trim($_POST['senha']);
    // Validação simples: checa se todos os campos foram preenchidos
    if (!empty($nome) && !empty($email) && !empty($senha)) {
        // Cria a conexão com o banco de dados
        $database = new Database();
        $db = $database->getConnection();
        // Instancia a classe Usuario
        $usuario = new Usuario($db);
        // Tenta cadastrar o usuário
        if ($usuario->cadastrar($nome, $email, $senha)) {
            echo "Usuário cadastrado com sucesso!";
        } else {
            echo "Erro ao cadastrar usuário. Verifique se o e-mail já está cadastrado.";
        }
    } else {
        echo "Preencha todos os campos!";
    }
}
?> 

2.2. Classe de Conexão com o Banco de Dados

Caso ainda não tenha criado, a classe Database centraliza a conexão com o banco. Ela ficará na pasta /Classes.

 
<?php 
// Classes/Database.php 
class Database {
    private $host = "localhost";
    private $db_name = "sistema_login";
    private $username = "root";
    private $password = "";
    public $conn;
    public function getConnection(){
        $this->conn = null;
        try {
            $this->conn = new PDO(
                "mysql:host={$this->host};dbname={$this->db_name}",
                $this->username,
                $this->password
            );
            $this->conn->exec("set names utf8");
        } catch(PDOException $exception) {
            echo "Erro na conexão: " . $exception->getMessage();
        }
        return $this->conn;
    }
}
?> 

2.3. Classe de Usuário para Operações no Banco

A classe Usuario gerencia as operações de cadastro, verificando se o e-mail já existe e inserindo os dados com segurança.

 
<?php 
// Classes/Usuario.php 
class Usuario {
    private $conn;
    private $table_name = "usuarios";
    public function __construct($db) {
         $this->conn = $db;
    }
    public function cadastrar($nome, $email, $senha) {
        // Verifica se o e-mail já está cadastrado
        $query = "SELECT id FROM " . $this->table_name . " WHERE email = :email";
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(':email', $email);
        $stmt->execute();
        if ($stmt->rowCount() > 0) {
            return false; // E-mail já cadastrado
        }
        // Cria um hash seguro para a senha
        $senha_hash = password_hash($senha, PASSWORD_DEFAULT);
        // Prepara a query de inserção
        $query = "INSERT INTO " . $this->table_name . " (nome, email, senha) VALUES (:nome, :email, :senha)";
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(':nome', $nome);
        $stmt->bindParam(':email', $email);
        $stmt->bindParam(':senha', $senha_hash);
        // Executa a query e retorna o resultado
        if ($stmt->execute()) {
            return true;
        }
        return false;
    }
}
?> 

Aspectos importantes:

  • Validação dos Dados: O controlador verifica se os campos estão preenchidos antes de proceder.

  • Segurança:

    • A senha é transformada em hash com password_hash(), evitando armazenar senhas em texto puro.

    • O uso de prepared statements protege contra SQL Injection.

  • Organização: A separação em classes e controladores facilita a manutenção e a escalabilidade do sistema.


3. Testando o Sistema de Cadastro

Após implementar os arquivos acima, realize os seguintes testes:

  1. Acesse a Interface: Abra o navegador e vá até a página de cadastro (ex.: http://localhost/seu_projeto/Views/cadastro.php).

  2. Preencha o Formulário: Insira dados válidos e envie o formulário.

  3. Verifique a Inserção: Se o cadastro for bem-sucedido, a mensagem de sucesso será exibida. Em caso de erro, verifique se o e-mail já não está cadastrado ou se houve algum problema na conexão com o banco.

 


Conclusão

Nesta aula, você aprendeu como desenvolver o sistema de cadastro de usuários utilizando PHP orientado a objetos e Bootstrap. Vimos desde a criação da interface do formulário até a implementação do backend com validação e segurança. Esse módulo é fundamental para garantir que os dados dos usuários sejam processados de forma segura e organizada.

Nos próximos passos, avançaremos para a implementação do sistema de login e autenticação, complementando o fluxo completo do nosso projeto de sistema de login e cadastro.

Boa codificação e até a próxima aula!

Tags:
#cadastro de usuário PHP  # formulário Bootstrap  # PHP OOP  # cadastro seguro  # tutorial PHP  # sistema de login  # SEO  # desenvolvimento web 

Notícias Relacionadas

Aula 4: Desenvolvimento do Sistema de Cadastro de Usuários
  Contato
  • support@nerdtoolkit.com.br
Mapa do Site
Mostrar mapa do site
  Sobre

Feito de programadores para programadores.

Este site utiliza cookies. Ao continuar a utilizar este site, você concorda com a nossa utilização de cookies e política de privacidade.
Leia mais Concordo