COMPARTE ESTE ARTÍCULO

Introducción

En el desarrollo web, es fundamental entender cómo manejar formularios y validar datos de entrada usando expresiones regulares (regex). PHP, uno de los lenguajes de programación más utilizados para el desarrollo del lado del servidor, proporciona herramientas robustas para estas tareas. En este artículo, propondremos un ejercicio práctico que incluye la creación de un formulario y la validación de sus datos mediante regex, además de mostrar la solución correspondiente.

Objetivo del Ejercicio

Desarrollar un formulario en PHP que solicite al usuario su nombre, email y un comentario. Este formulario debe validar los datos ingresados usando expresiones regulares y mostrar mensajes de error específicos en caso de datos inválidos.

Requisitos del Ejercicio

  1. Nombre:
  • Solo debe contener letras y espacios.
  • Debe empezar con una letra mayúscula.
  1. Email:
  • Debe seguir el formato estándar de email (por ejemplo, usuario@dominio.com).
  1. Comentario:
  • No debe exceder los 200 caracteres.

Código del Formulario en PHP

<?php
// Inicializar variables
$nombre = $email = $comentario = "";
$nombreErr = $emailErr = $comentarioErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Validación del nombre
    if (empty($_POST["nombre"])) {
        $nombreErr = "El nombre es requerido";
    } else {
        $nombre = test_input($_POST["nombre"]);
        // verificar si el nombre solo contiene letras y espacios
        if (!preg_match("/^[a-zA-Z ]*$/",$nombre)) {
            $nombreErr = "Solo se permiten letras y espacios en blanco";
        }
    }

    // Validación del email
    if (empty($_POST["email"])) {
        $emailErr = "El email es requerido";
    } else {
        $email = test_input($_POST["email"]);
        // verificar si el formato de email es correcto
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailErr = "Formato de email inválido";
        }
    }

    // Validación del comentario
    if (empty($_POST["comentario"])) {
        $comentarioErr = "El comentario es requerido";
    } else {
        $comentario = test_input($_POST["comentario"]);
        if (strlen($comentario) > 200) {
            $comentarioErr = "El comentario no debe exceder los 200 caracteres";
        }
    }
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>

<h2>Formulario de contacto</h2>
<p><span class="error">* campo obligatorio</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    Nombre: <input type="text" name="nombre" value="<?php echo $nombre;?>">
    <span class="error">* <?php echo $nombreErr;?></span>
    <br><br>
    Email: <input type="text" name="email" value="<?php echo $email;?>">
    <span class="error">* <?php echo $emailErr;?></span>
    <br><br>
    Comentario: <textarea name="comentario" rows="5" cols="40"><?php echo $comentario;?></textarea>
    <span class="error">* <?php echo $comentarioErr;?></span>
    <br><br>
    <input type="submit" name="submit" value="Enviar">
</form>

Explicación de la Solución

El código anterior inicia comprobando si el formulario ha sido enviado. Luego, valida cada campo según las condiciones dadas, utilizando expresiones regulares para el nombre y funciones integradas de PHP para validar el email. Cada error de validación se captura en una variable específica, que luego se muestra junto al campo correspondiente del formulario.

Este ejercicio no solo ayuda a entender la mecánica de los formularios y la validación en PHP, sino también las mejores prácticas en el manejo de la entrada de usuario, asegurando que los datos sean seguros y estén correctamente formateados antes de ser procesados o almacenados.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO