Formularios PHP con validación de datos de entrada

Clase 10 de 33Curso de PHP Avanzado

Resumen

Realizar una adecuada validación de formularios es esencial para asegurar la calidad y seguridad de los datos que almacenamos en nuestra base. Gracias a PHP, es posible implementar rutinas sencillas pero efectivas que verifican cada información ingresada, desde datos obligatorios hasta formatos específicos.

¿Cómo configurar una ruta y controlador básico en PHP?

Para empezar, lo principal es habilitar un botón que lleve hacia nuestro formulario de creación. Esto implica:

  • Definir una ruta clara en nuestro archivo, por ejemplo:
'links/create'
  • Luego, construir un nuevo controlador asociado a esta ruta que refleje con precisión su nombre:
links-create-controller.php
  • Dentro del controlador, especificamos la plantilla a imprimir:
links-create.template.php

Siguiendo estos pasos, PHP presenta el formulario en pantalla.

¿Qué elementos debe contener nuestro formulario?

Generar un formulario funcional implica incluir los campos adecuados con su correspondiente validación:

  • Título: obligatorio.
  • URL: obligatorio, debe ser válida.
  • Descripción: campo obligatorio de texto.

Los campos se declaran claramente en código PHP, de esta manera recuperamos la información:

$titulo = $_POST['titulo'] ?? '';
$url = $_POST['url'] ?? '';
$descripcion = $_POST['descripcion'] ?? '';

Se debe verificar tanto la existencia como la validez de los datos enviados, usando condicionales:

if(empty($titulo)){
    $errores[] = 'El título es obligatorio.';
}

if(empty($url)){
    $errores[] = 'La URL es obligatoria.';
}elseif(!filter_var($url, FILTER_VALIDATE_URL)){
    $errores[] = 'La URL no es válida.';
}

if(empty($descripcion)){
    $errores[] = 'La descripción es obligatoria.';
}

Con esta validación básica nos aseguramos de la integridad de los datos que guardamos.

¿Cómo mostrar mensajes de error del formulario en pantalla?

Al realizar la validación, los errores se almacenan en un arreglo, fácilmente presentables al usuario:

if(!empty($errores)):
    foreach($errores as $error):
        echo $error;
    endforeach;
endif;

Esto proporciona una retroalimentación inmediata, permitiendo corregir rápidamente fallos en la entrada de datos.

¿Qué sucede tras pasar la validación PHP exitosamente?

Cuando el formulario pasa todas las validaciones, procedemos a registrar los datos en la base usando una consulta SQL sencilla:

DB::query("INSERT INTO enlaces (titulo, url, descripcion) VALUES ('$titulo', '$url', '$descripcion')");

Finalmente, una redirección viene a continuación para completar el ciclo:

header('Location: links');

Es un procedimiento sencillo, integral y eficaz que protege nuestra base de datos y mejora la calidad final del software.

¿Has probado este procedimiento en tus proyectos? ¿Qué desafíos has encontrado?