B09 — Valida antes de confiar y escapa antes de mostrar
Nivel básico · Lección B09
B09 — Valida antes de confiar y escapa antes de mostrar

Resultado: formulario con errores claros y salida segura.
Concepto central: validar entrada y escapar salida resuelven problemas diferentes.
Tiempo orientativo: 100–130 minutos.
¿Por qué un campo “obligatorio” todavía necesita validación PHP?
Porque cualquier solicitud puede modificarse fuera del formulario. El servidor debe comprobar presencia, tipo, rango y reglas. Después, al mostrar texto, debe codificarlo para el contexto HTML.
Conexión anterior
Protegeremos el formulario de B08.
Laboratorio 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.';
}
?>
Al imprimir texto proporcionado por el usuario usa htmlspecialchars($value, ENT_QUOTES, 'UTF-8').
Misión Media
Valida nombre de alias, tema y horas. Muestra un mensaje junto a cada campo y conserva valores seguros. Prueba caracteres como < y &.
Extensión Universidad
Construye funciones separadas de normalización, validación y escape. Define una matriz entrada–regla–error y explica por qué filtrar no sustituye el modelado del dominio.
Pruebas
Vacío, mínimo, máximo, fuera de rango, decimal, texto y caracteres HTML.
Entrega
Envía matriz, código, evidencia de seis casos y explicación entre validar y escapar. ENVIAR AL TUTOR.
Siguiente: B10 — Proyecto básico.

Comments
Post a Comment