Clique aqui e veja todas as aulas
1. Estrutura de Registro de Usuários
Primeiro, criaremos um formulário para que novos usuários possam se registrar no sistema. Usaremos o método register() da classe User para salvar os dados de um novo usuário no banco de dados.
Formulário de Registro
No arquivo register.php, adicione o seguinte código HTML para criar o formulário de registro de usuários:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Registro de Usuário - Gerenciador de Tarefas</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h2 class="mt-5">Registrar-se</h2>
<form action="register_process.php" method="POST">
<div class="form-group">
<label for="username">Nome de Usuário</label>
<input type="text" class="form-control" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">Senha</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-success">Registrar</button>
</form>
</div>
</body>
</html>- Esse formulário coleta o nome de usuário e a senha que serão processados e armazenados no banco de dados.
2. Processamento do Registro de Usuário
No arquivo register_process.php, vamos processar os dados do formulário de registro e chamar o método register() da classe User para salvar os novos usuários no banco de dados:
<?php
require_once 'classes/Database.php';
require_once 'classes/User.php';
$database = new Database();
$db = $database->getConnection();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$user = new User($db);
$username = $_POST['username'];
$password = $_POST['password'];
if ($user->register($username, $password)) {
echo "Usuário registrado com sucesso!";
header("Location: login.php");
} else {
echo "Erro ao registrar usuário. Nome de usuário já existente.";
}
}
?>Este código faz o seguinte:
- Recebe os dados do formulário.
- Usa o método
register()da classeUserpara inserir o novo usuário no banco de dados. - Se o registro for bem-sucedido, o usuário será redirecionado para a página de login.
3. Estrutura de Login de Usuários
Agora vamos criar o formulário de login, permitindo que usuários registrados entrem no sistema.
Formulário de Login
No arquivo login.php, adicione o seguinte código HTML:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Login - Gerenciador de Tarefas</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h2 class="mt-5">Login</h2>
<form action="login_process.php" method="POST">
<div class="form-group">
<label for="username">Nome de Usuário</label>
<input type="text" class="form-control" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">Senha</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Entrar</button>
</form>
</div>
</body>
</html>Este formulário permitirá que o usuário insira suas credenciais para fazer login.
4. Processamento do Login de Usuário
No arquivo login_process.php, vamos processar o login do usuário e verificar suas credenciais:
<?php
require_once 'classes/Database.php';
require_once 'classes/User.php';
session_start();
$database = new Database();
$db = $database->getConnection();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$user = new User($db);
$username = $_POST['username'];
$password = $_POST['password'];
if ($user->login($username, $password)) {
header("Location: tasks.php");
} else {
echo "Nome de usuário ou senha incorretos.";
}
}
?>Neste código:
- As credenciais fornecidas no formulário são validadas com o método
login()da classeUser. - Se o login for bem-sucedido, o usuário é redirecionado para a página de tarefas.
5. Protegendo Páginas
Agora, vamos garantir que apenas usuários logados possam acessar determinadas páginas. Para isso, use o seguinte código no início das páginas protegidas, como tasks.php:
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
?>Esse código verifica se a sessão está ativa. Caso contrário, o usuário é redirecionado para a página de login.
6. Implementando o Logout
Para permitir que o usuário saia da sessão, crie um arquivo logout.php com o seguinte código:
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;
?>Esse código encerra a sessão do usuário e o redireciona para a página de login.
7. Exercício Prático
Como exercício:
- Teste o sistema de registro e login que acabamos de implementar.
- Adicione mensagens de feedback personalizadas para os usuários, como “Login realizado com sucesso” ou “Usuário registrado com sucesso”.
8. Próximos Passos
Com o sistema de autenticação implementado, agora podemos focar em melhorar a segurança e adicionar funcionalidades extras, como a recuperação de senhas.
