Aprender PHP do Zero - Parte 5

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.

📘 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

  1. Crie os arquivos:
    • login.html
    • autenticar.php
    • painel.php
    • logout.php
    • conexao.php
  2. Abra o servidor com:
    php -S localhost:8000
  3. 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! 🎉

Enviar um comentário