Formulario III - Validación PHP

Otra forma correcta de validar textos con redirección automática

Otra forma correcta de Validar Textos

La forma es utilizar dos documentos, el que estamos viendo con su respectivo formulario, y otro documento con extension PHP, llamado: 'validartextostres.php'. Para que esto funcione, ambos archivos deben ser llamados desde el localhost ó desde el hosting (servidor remoto), en Internet.

Código del Formulario

<form method="post" action="validartextostres.php"> Escriba Nombre completo: <input type="text" name="nombre" value="" size=10> <br> Escriba Apellido de Padre:<input type="text" name="apellido1" value="" size=10> <br> Escriba Apellido de Madre:<input type="text" name="apellido2" value="" size=10> <br> Escriba un número: <input type="text" name="numero" value="" size=10> <br /><br /> <input type="submit" name="sub" value="Enviar!"> </form>
Aquí termina el código del formulario

Cuando el Usuario haga Click sobre el botón Enviar, se dirigirá al documento 'validartextostres.php'.

Si usted está viendo esta página desde un computador o Celular conectado a internet, haga la prueba de no enviar ningún dato o solo algunos.

Observará que si no manda los datos vuelve a los 5 segundos a este documento HTML.

Código de validartextostres.php (PHP moderno)

Este es el código que procesa el formulario y redirige después de 5 segundos si hay errores:

<?php // Recibir datos del formulario con operador de fusión de null (PHP 7+) $nombre = $_POST['nombre'] ?? ''; $apellido1 = $_POST['apellido1'] ?? ''; $apellido2 = $_POST['apellido2'] ?? ''; $numero = $_POST['numero'] ?? ''; // Validar que todos los campos estén completos if (!empty($nombre) && !empty($apellido1) && !empty($apellido2)) { // Todos los campos están completos, mostrar información echo "<h2>Datos recibidos correctamente</h2>"; echo "<p>Nombre completo: " . htmlspecialchars($nombre) . " " . htmlspecialchars($apellido1) . " " . htmlspecialchars($apellido2) . "</p>"; echo "<p>Número: " . htmlspecialchars($numero) . "</p>"; } else { // Faltan datos, mostrar mensaje de error y redirigir después de 5 segundos echo "<h2>Error: Faltan datos requeridos</h2>"; echo "<p>Por favor, complete todos los campos obligatorios.</p>"; echo "<p>Será redirigido al formulario en 5 segundos...</p>"; // Redirección automática después de 5 segundos header("refresh:5; url=formulario_iii.html"); } ?>

Este código PHP moderno (PHP 7+) utiliza:

  • Operador de fusión de null (??) para manejar valores no definidos
  • Función htmlspecialchars() para prevenir ataques XSS
  • Función header() con refresh para redirección automática
  • Función empty() para verificar campos vacíos

Alternativa en PHP5 (solo para visualización)

Esta es la versión del código en PHP5 que podría haberse utilizado:

<?php // Recibir datos del formulario (PHP5) $nombre = isset($_POST['nombre']) ? $_POST['nombre'] : ''; $apellido1 = isset($_POST['apellido1']) ? $_POST['apellido1'] : ''; $apellido2 = isset($_POST['apellido2']) ? $_POST['apellido2'] : ''; $numero = isset($_POST['numero']) ? $_POST['numero'] : ''; // Validar que todos los campos estén completos if ($nombre != '' && $apellido1 != '' && $apellido2 != '') { // Todos los campos están completos, mostrar información echo "<h2>Datos recibidos correctamente</h2>"; echo "<p>Nombre completo: $nombre $apellido1 $apellido2</p>"; echo "<p>Número: $numero</p>"; } else { // Faltan datos, mostrar mensaje de error y redirigir después de 5 segundos echo "<h2>Error: Faltan datos requeridos</h2>"; echo "<p>Por favor, complete todos los campos obligatorios.</p>"; echo "<p>Será redirigido al formulario en 5 segundos...</p>"; // Redirección automática después de 5 segundos echo '<meta http-equiv="refresh" content="5; url=formulario_iii.html">'; } ?>

Este código PHP5 muestra las diferencias con la versión moderna:

  • Uso de isset() con operador ternario en lugar del operador de fusión de null
  • Falta de sanitización con htmlspecialchars() (potencial vulnerabilidad XSS)
  • Uso de meta refresh en lugar de header() para la redirección
  • Interpolación directa de variables en strings
Volver al Inicio