Volver
Ctrl+Space
◑
Copiar
Descargar
Restaurar
Ejecutar
Ctrl+Enter
<?php // Formularios en PHP - Ejemplo 2: Validación de datos POST // ========================================================== // En producción los datos vendrían de POST. // Aquí los simulamos con un array para poder ejecutar en el editor. // La lógica de validación es exactamente la misma. // Simulamos distintos conjuntos de datos para ver cómo responde la validación. // Probá cambiando los valores para ver los errores. $casos = [ [ "nombre" => " Ana García ", "email" => "ana@mail.com", "edad" => "28", ], [ "nombre" => "A", // muy corto "email" => "no-es-email", // formato inválido "edad" => "15", // menor de 18 ], [ "nombre" => "", // vacío "email" => "juan@mail.com", "edad" => "200", // fuera de rango ], [ "nombre" => "Carlos López", "email" => "carlos@mail.com", "edad" => "35", ], ]; foreach ($casos as $i => $datos) { echo "=== Caso " . ($i + 1) . " ===<br>"; // ── 1. Limpiar ────────────────────────────────────────────── // Con metodo POST $nombre = trim($datos["nombre"] ?? ""); $email = trim($datos["email"] ?? ""); $edad = (int)trim($datos["edad"] ?? "0"); echo "Datos recibidos: nombre='$nombre', email='$email', edad=$edad<br>"; // ── 2. Validar ────────────────────────────────────────────── $errores = []; if (strlen($nombre) < 2) { $errores[] = "El nombre debe tener al menos 2 caracteres"; } if (strlen($nombre) > 100) { $errores[] = "El nombre no puede superar los 100 caracteres"; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errores[] = "El email no es válido"; } if ($edad < 18 || $edad > 120) { $errores[] = "La edad debe estar entre 18 y 120"; } // ── 3. Resultado ──────────────────────────────────────────── if (empty($errores)) { echo "✓ Datos válidos — se podría guardar en la BD<br>"; } else { foreach ($errores as $error) { echo " ✗ $error<br>"; } } echo "<br>"; } // Funciones de validación útiles echo "=== Funciones de validación de PHP ===<br>"; $valores = [ "ana@mail.com", "no-es-email", "otro@dominio.org", "malformado@", ]; foreach ($valores as $v) { $ok = filter_var($v, FILTER_VALIDATE_EMAIL) ? "✓ válido" : "✗ inválido"; echo " $v → $ok<br>"; } echo "<br>"; $numeros = ["25", "abc", "3.14", "-5", "0"]; foreach ($numeros as $n) { $entero = (int)$n; echo " (int)\"$n\" = $entero<br>"; } ?>