Clique aqui e veja todas as aulas
Nesta aula, vamos integrar as funcionalidades de cadastro e login que desenvolvemos nas aulas anteriores e abordar técnicas para tratar erros e fornecer feedback seguro e amigável ao usuário. A integração garante que o sistema funcione como um todo e o tratamento de erros previne falhas inesperadas, melhorando a experiência do usuário e a segurança da aplicação.
1. Integração dos Sistemas de Cadastro e Login
Após desenvolver os módulos de cadastro e autenticação, é fundamental integrá-los em um fluxo contínuo. A ideia é permitir que o usuário se cadastre, realize o login e tenha acesso a uma área restrita (por exemplo, um dashboard).
Exemplo de Página Protegida: dashboard.php
Crie um arquivo dashboard.php na pasta Views para representar uma área protegida, que somente usuários autenticados poderão acessar.
Dica: Utilize a função htmlspecialchars() para evitar vulnerabilidades como XSS ao exibir dados do usuário.
2. Tratamento de Erros e Feedback ao Usuário
2.1. Mensagens de Erro e Sucesso
Fornecer feedback claro ao usuário é essencial para melhorar a experiência e auxiliar na resolução de problemas. No exemplo do cadastro e login, já exibimos mensagens simples. Contudo, você pode aprimorar esse sistema utilizando sessões ou variáveis de sessão para armazenar mensagens e exibi-las em uma página de forma consistente.
Exemplo de Uso de Sessão para Mensagens
No controlador de cadastro (cadastroControlle.php), em vez de apenas imprimir mensagens, podemos armazená-las na sessão. Para isso, procure o seguinte código:
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.";
}Também é necessário colocar o seguinte código no início da Controller para que ela consiga lidar com a Sessão:
// Esse deve ser o primeiro código do seu arquivo. Coloque ele logo após a abertura da tag do PHP
session_start();
Na página de cadastro (cadastro.php), adicione um trecho para exibir a mensagem:
2.2. Uso de Try/Catch para Capturar Exceções
Em operações que envolvem acesso ao banco de dados ou outras operações críticas, utilize blocos try/catch para capturar exceções e registrar os erros. Isso evita que mensagens sensíveis sejam exibidas ao usuário e ajuda na depuração.
Vamos aplicar esse conceito no arquivo Database.php, que está na pasta Classes. Encontre a função getConnection() e substitua pelos códigos a seguir:
2.3. Logs de Erros
Para manter a segurança e facilitar a manutenção, registre os erros críticos em um arquivo de log. Você pode configurar o PHP para registrar erros no arquivo error_log do servidor ou em um arquivo específico.
No arquivo php.ini, configure:
Dica: Nunca exiba detalhes dos erros ao usuário final, pois isso pode revelar informações sensíveis sobre o sistema.
3. Integração Completa do Sistema
Com as funcionalidades de cadastro, login e tratamento de erros implementadas, o fluxo do sistema fica da seguinte forma:
Cadastro: O usuário preenche o formulário e os dados são validados e inseridos no banco.
Login: O usuário autentica com suas credenciais e, se bem-sucedido, é redirecionado para o dashboard.
Área Restrita: O dashboard verifica se a sessão está ativa. Caso contrário, redireciona o usuário para a página de login.
Feedback: Em todos os pontos, mensagens de erro ou sucesso são exibidas ao usuário, e erros críticos são registrados em logs.
4. Conclusão
Nesta aula, integramos as funcionalidades de cadastro e login, criando um fluxo de usuário contínuo que inclui uma área restrita. Além disso, abordamos técnicas de tratamento de erros, incluindo o uso de mensagens amigáveis, blocos try/catch e a importância dos logs para uma manutenção eficiente do sistema. Essas práticas garantem que o sistema seja robusto, seguro e que ofereça uma experiência de usuário consistente.
Nos próximos passos, você poderá continuar aprimorando o sistema, adicionando novas funcionalidades e aperfeiçoando a segurança e usabilidade do seu projeto.
Boa codificação e até a próxima aula!
