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
$nombre = $_POST['nombre'] ?? '';
$apellido1 = $_POST['apellido1'] ?? '';
$apellido2 = $_POST['apellido2'] ?? '';
$numero = $_POST['numero'] ?? '';
if (!empty($nombre) && !empty($apellido1) && !empty($apellido2)) {
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 {
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>";
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
$nombre = isset($_POST['nombre']) ? $_POST['nombre'] : '';
$apellido1 = isset($_POST['apellido1']) ? $_POST['apellido1'] : '';
$apellido2 = isset($_POST['apellido2']) ? $_POST['apellido2'] : '';
$numero = isset($_POST['numero']) ? $_POST['numero'] : '';
if ($nombre != '' && $apellido1 != '' && $apellido2 != '') {
echo "<h2>Datos recibidos correctamente</h2>";
echo "<p>Nombre completo: $nombre $apellido1 $apellido2</p>";
echo "<p>Número: $numero</p>";
} else {
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>";
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