B09 | Valide antes de confiar e escape antes de exibir
Nível básico · Lição B09
B09 | Valide antes de confiar e escape antes de exibir

Resultado: formulário com erros claros e saída segura.
Conceito central: validar a entrada e escapar da saída resolve problemas diferentes.
Tempo de orientação: 100–130 minutos.
Por que um campo “obrigatório” ainda precisa de validação do PHP?
Porque qualquer solicitação pode ser modificada fora do formulário. O servidor deve verificar presença, tipo, alcance e regras. Então, ao exibir o texto, você deve codificá-lo para o contexto HTML.
Conexão anterior
Protegeremos a forma de B08.
Laboratório guiado
<?php
$rawHours = $_POST['hours'] ?? null;
$errors = [];
$hours = filter_var($rawHours, FILTER_VALIDATE_INT, [
'options' => ['min_range' => 1, 'max_range' => 40],
]);
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $hours === false) {
$errors['hours'] = 'Escribe un número entre 1 y 40.';
}
?>
Ao imprimir texto fornecido pelo usuário, use htmlspecialchars($value, ENT_QUOTES, 'UTF-8').
Missão Média
Valide o nome alternativo, tópico e horário. Exiba uma mensagem ao lado de cada campo e preserve os valores seguros. Experimente caracteres como < e &.
Extensão Universitária
Crie funções separadas de normalização, validação e escape. Define uma matriz de erro de regra de entrada e explica por que a filtragem não substitui a modelagem de domínio.
Testes
Caracteres vazios, mínimo, máximo, fora do intervalo, decimais, de texto e HTML.
Entrega
Enviar matriz, código, evidências de seis casos e explicação entre validação e escape. ENVIAR PARA O TUTOR.
Próximo: B10 — Projeto básico.

Comments
Post a Comment