Aula 21: Implementando Registro e Login de Usuários

Por: Nerd Toolkit Postado em: Outubro 21, 2024 Visto por: 351

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 classe User para 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 classe User.
  • 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.

Tags:
#registro de usuários PHP  # login PHP  # autenticação de usuários PHP  # OOP login PHP  # sistema de login PHP  # segurança de dados PHP  # registro e login 

Notícias Relacionadas

Aula 21: Implementando Registro e Login 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