Validar formulario PHP en el mismo archivo y luego reenviarlo a otro archivo PHP [SOLUCIONADO]

Al trabajar con formularios en PHP, un aspecto fundamental es validar los datos ingresados por el usuario antes de ejecutar cualquier operación con ellos. Esta validación se puede realizar en el mismo archivo PHP que presenta el formulario, antes de enviar los datos validados a otro archivo PHP para su procesado.

Permítenos mostrar cómo hacerlo en este tutorial. Y olvídate de constantemente copiar y pegar el código de este artículo. Hemos provisto botones de copia en cada fragmento de código.

Preparando el Formulario

En primer lugar, es necesario crear el formulario en HTML. Supongamos que queremos recolectar el nombre y el correo electrónico del usuario.

<form method="POST" action=""> 
    <input type="text" name="nombre" placeholder="Nombre" required>
    <input type="email" name="email" placeholder="Correo Electrónico" required>
    <input type="submit" value="Enviar">
</form> 

Al establecer el atributo de acción en vacío, haremos que el formulario se envíe a sí mismo para la validación.

Validación de Datos con PHP

Ahora, necesitamos recoger y validar los datos enviados por el formulario dentro del mismo archivo PHP.

<?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
        $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
        
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo "El formato del correo electrónico no es válido.";
        }
        // Si la validación es exitosa, procesamos los datos
    }
?>

En este código, primero verificamos si se ha enviado el formulario. Luego, recogemos y limpiamos los datos utilizando la función filter_input(). Para el correo electrónico, adicionalmente comprobamos si es un correo electrónico válido con la función filter_var().

Reenvío de Datos Validados

Después de que los datos son validados, se pueden reenviar a otro archivo PHP para ser procesados o ser guardados en una base de datos.

<?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Código de validación aquí...

        if ($nombre && filter_var($email, FILTER_VALIDATE_EMAIL)) {
            header('Location: procesar.php?nombre=' . urlencode($nombre) .'&email=' . urlencode($email));
            exit();
        }
    }
?>

Aquí, si la validación tiene éxito, reenviamos los datos usando la función header() para redireccionar a otra página (en este caso, ‘procesar.php’), y pasamos los datos a través de la URL.

En resumen, validar y reenviar formularios PHP en el mismo archivo y luego a otro es una técnica muy utilizada. Permite un manejo de datos más seguro y flexible, al validar los datos antes de que se utilicen para cualquier otra operación.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad