📘 Aprender PHP do Zero — Parte 5: Login, Sessões e Autenticação
Agora que você já sabe trabalhar com banco de dados, chegou a hora de criar um sistema seguro com login, senha e controle de acesso.
Nesta parte você vai aprender:
- Como funcionam sessões no PHP
- Criar um formulário de login com validação
- Proteger páginas com sessão
- Fazer logout com segurança
🔐 O que são Sessões em PHP?
Sessões permitem guardar informações temporárias de um usuário enquanto ele navega no site.
<?php
session_start(); // Inicia a sessão
$_SESSION["nome"] = "Carlos"; // Cria uma variável de sessão
echo $_SESSION["nome"]; // Acessa o valor
?>
Dica: Toda página que usa $_SESSION
deve começar com session_start();
👤 Criar banco de usuários (caso ainda não tenha)
CREATE DATABASE sistema;
USE sistema;
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(50),
email VARCHAR(100),
senha VARCHAR(255)
);
⚠️ A senha deve ser criptografada com md5()
, sha1()
ou preferencialmente password_hash()
.
📝 1. Formulário de Login (login.html)
<form method="POST" action="autenticar.php">
Email: <input type="email" name="email"><br>
Senha: <input type="password" name="senha"><br>
<input type="submit" value="Entrar">
</form>
🔐 2. Verificando usuário (autenticar.php)
<?php
session_start();
require "conexao.php";
$email = $_POST["email"];
$senha = $_POST["senha"];
// Busca no banco
$sql = "SELECT * FROM usuarios WHERE email = '$email'";
$res = $conn->query($sql);
if ($res->num_rows > 0) {
$user = $res->fetch_assoc();
if ($user["senha"] == md5($senha)) {
$_SESSION["usuario"] = $user["nome"];
header("Location: painel.php");
} else {
echo "Senha incorreta!";
}
} else {
echo "Usuário não encontrado!";
}
?>
Observações:
- Compara a senha digitada com a senha salva no banco
- Se tudo certo, guarda o nome na sessão
- Redireciona para o painel
🛡️ 3. Proteger uma página (painel.php)
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.html");
exit;
}
echo "Bem-vindo, " . $_SESSION["usuario"];
echo "<br><a href='logout.php'>Sair</a>";
?>
Dica: Esse código impede acesso direto ao painel.php
sem login.
🚪 4. Encerrar sessão (logout.php)
<?php
session_start();
session_destroy();
header("Location: login.html");
?>
Esse script limpa a sessão e volta para o login.
🧪 Teste completo no Android
- Crie os arquivos:
login.html
autenticar.php
painel.php
logout.php
conexao.php
- Abra o servidor com:
php -S localhost:8000
- Acesse em
http://localhost:8000/login.html
Como cadastrar um usuário manualmente:
INSERT INTO usuarios (nome, email, senha)
VALUES ('João', 'joao@email.com', md5('1234'));
✅ Conclusão da Parte 5
Você agora sabe:
- O que são e como funcionam sessões em PHP
- Como criar um sistema de login básico
- Como proteger páginas de acesso não autorizado
- Como implementar logout com segurança
👉 Próxima Parte (6): Vamos criar um painel administrativo real com cadastro, edição, exclusão e filtros. Aprenderemos sobre UPDATE
, organização de código e boas práticas!
Continue praticando e salve seus arquivos com frequência. Parabéns por chegar até aqui! 🎉