Crie um Sistema de Cadastro com MySQL, PHP e Bootstrap


Como Criar um Sistema de cadastro com MySQL, PHP e Bootstrap

Neste tutorial, você aprenderá a criar um sistema  utilizando PHP, MySQL e Bootstrap. O sistema permitirá cadastrar usuários (alunos, trainers e administradores) como por exemplo usuários de uma academia. Vamos começar!

1. Estruturando o Banco de Dados

Crie um banco de dados chamado academia com as seguintes tabelas:


CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100),
    telefone VARCHAR(15),
    tipo ENUM('Aluno', 'Trainer', 'Administrador') NOT NULL,
    senha VARCHAR(255) NOT NULL
);

CREATE TABLE treinos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL
);

CREATE TABLE fichas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT NOT NULL,
    treino_id INT NOT NULL,
    data_criacao DATE NOT NULL,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
    FOREIGN KEY (treino_id) REFERENCES treinos(id)
);




2. Configurando o Ambiente PHP

Crie um arquivo config.php para conectar ao banco de dados:


<?php
$host = 'localhost';
$user = 'root';
$password = ''; // Altere conforme necessário
$dbname = 'academia';

$conn = new mysqli($host, $user, $password, $dbname);

if ($conn->connect_error) {
    die("Conexão falhou: " . $conn->connect_error);
}
?>



3. Criando o Formulário de Cadastro

Crie o arquivo form_usuario.php para incluir o formulário de cadastro:


<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <title>Cadastro de Usuários</title>
</head>
<body>
    <div class="container mt-5">
        <h1>Cadastro de Usuários</h1>
        <form action="processa_usuario.php" method="POST" class="mt-4">
            <div class="mb-3">
                <label for="nome" class="form-label">Nome</label>
                <input type="text" name="nome" id="nome" class="form-control" required>
            </div>
            <div class="mb-3">
                <label for="email" class="form-label">Email</label>
                <input type="email" name="email" id="email" class="form-control" required>
            </div>
            <div class="mb-3">
                <label for="telefone" class="form-label">Telefone</label>
                <input type="text" name="telefone" id="telefone" class="form-control" required>
            </div>
            <div class="mb-3">
                <label for="tipo" class="form-label">Tipo de Cadastro</label>
                <select name="tipo" id="tipo" class="form-control" required>
                    <option value="Aluno">Aluno</option>
                    <option value="Trainer">Trainer</option>
                    <option value="Administrador">Administrador</option>
                </select>
            </div>
            <div class="mb-3">
                <label for="senha" class="form-label">Senha</label>
                <input type="password" name="senha" id="senha" class="form-control" required>
            </div>
            <button type="submit" class="btn btn-primary">Cadastrar Usuário</button>
        </form>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

4. Processando o Cadastro

Crie o arquivo processa_usuario.php para processar os dados enviados pelo formulário:


<?php
include 'config.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Capturando os dados do formulário
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $telefone = $_POST['telefone'];
    $tipo = $_POST['tipo'];
    $senha = password_hash($_POST['senha'], PASSWORD_DEFAULT); // Criptografando a senha

    // SQL para inserir os dados no banco
    $sql = "INSERT INTO usuarios (nome, email, telefone, tipo, senha) VALUES (?, ?, ?, ?, ?)";

    // Preparando a consulta para evitar injeção SQL
    $stmt = $conn->prepare($sql);
    if ($stmt) {
        $stmt->bind_param("sssss", $nome, $email, $telefone, $tipo, $senha);
        if ($stmt->execute()) {
            echo "<div class='alert alert-success'>Usuário cadastrado com sucesso!</div>";
            echo "<a href='index.php' class='btn btn-primary'>Voltar para a Página Inicial</a>";
        } else {
            echo "<div class='alert alert-danger'>Erro ao cadastrar usuário: " . $stmt->error . "</div>";
        }
        $stmt->close();
    } else {
        echo "<div class='alert alert-danger'>Erro na preparação da consulta: " . $conn->error . "</div>";
    }
    $conn->close();
} else {
    echo "<div class='alert alert-danger'>Método de requisição inválido.</div>";
}
?>



5. Criando a Página Inicial

Adicione um arquivo index.php para listar os cadastros e permitir ações:


<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <title>Gestão de Academia</title>
</head>
<body>
    <div class="container mt-5">
        <h1>Gestão de Academia</h1>
        <a href="form_usuario.php" class="btn btn-success mb-3">Cadastrar Novo Usuário</a>
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Nome</th>
                    <th>Email</th>
                    <th>Telefone</th>
                    <th>Tipo</th>
                    <th>Ações</th>
                </tr>
            </thead>
            <tbody>
                <?php
                include 'config.php';
                $sql = "SELECT * FROM usuarios";
                $result = $conn->query($sql);

                if ($result->num_rows > 0) {
                    while ($row = $result->fetch_assoc()) {
                        echo "<tr>";
                        echo "<td>" . $row['id'] . "</td>";
                        echo "<td>" . $row['nome'] . "</td>";
                        echo "<td>" . $row['email'] . "</td>";
                        echo "<td>" . $row['telefone'] . "</td>";
                        echo "<td>" . $row['tipo'] . "</td>";
                        echo "<td>
                                <a href='editar_usuario.php?id=" . $row['id'] . "' class='btn btn-warning btn-sm'>Editar</a>
                                <a href='excluir_usuario.php?id=" . $row['id'] . "' class='btn btn-danger btn-sm'>Excluir</a>
                              </td>";
                        echo "</tr>";
                    }
                } else {
                    echo "<tr><td colspan='6' class='text-center'>Nenhum usuário encontrado.</td></tr>";
                }

                $conn->close();
                ?>
            </tbody>
        </table>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>



Conclusão

Com os passos acima, você terá um sistema funcional para gerenciar cadastro. Não está cmpleto, porém acredito que seja de grande ajuda para que está iniciando. Adicione melhorias conforme necessário!

Veja o sistema funcioando aqui: https://har-ti.com/projetos/academia/




Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *