PHP Validación de formulario - Campos obligatorios
- Página anterior Validación de formularios PHP
- Página siguiente Formularios PHP URL / E-mail
Esta sección muestra cómo crear campos de entrada obligatorios y crear los mensajes de error necesarios.
PHP - Campos de entrada
Desde las reglas de validación de la sección anterior, vemos que los campos "Nombre", "Correo electrónico" y "Género" son obligatorios. Estos campos no pueden estar vacíos y deben completarse en el formulario HTML.
Campo | Reglas de validación |
---|---|
Nombre | Obligatorio. Debe contener letras y espacios. |
Correo electrónico | Obligatorio. Debe contener una dirección de correo electrónico válida (que incluya @ y .). |
Sitio web | Opcional. Si se completa, debe contener una URL válida. |
Comentario | Opcional. Campo de entrada de múltiples líneas (caja de texto). |
Género | Obligatorio. Debe seleccionar una opción. |
En la sección anterior, todos los campos de entrada eran opcionales.
En el siguiente código, hemos añadido algunas variables nuevas: $nameErr, $emailErr, $genderErr y $websiteErr. Estas variables de error guardarán los mensajes de error de los campos solicitados. Además, hemos añadido una sentencia if else para cada variable $_POST. Esta sentencia verifica si la variable $_POST está vacía (a través de la función PHP empty()). Si está vacía, el mensaje de error se almacenará en diferentes variables de error. Si no está vacío, se enviarán los datos de entrada del usuario a través de la función test_input():
<?php}} // Definir variables y establecerlos en valores vacíos $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "El nombre es obligatorio"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "El correo electrónico es obligatorio"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "El género es obligatorio"; } else { $gender = test_input($_POST["gender"]); } } ?>
PHP - Mostrar mensajes de error
En los formularios HTML, agregamos un poco de script detrás de cada campo solicitado. Si es necesario, se generan mensajes de error adecuados (si el usuario intenta enviar el formulario sin llenar los campos obligatorios):
Ejemplo
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Nombre: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> Correo electrónico: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Sitio web: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> <label>Comentario: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> Género: <input type="radio" name="gender" value="female">Mujer <input type="radio" name="gender" value="male">Hombre <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Enviar"> </form>
A continuación, se verifica los datos de entrada, es decir, ¿'¿El campo Nombre contiene solo letras y espacios?' y ¿'¿El campo E-mail contiene una sintaxis de dirección de correo electrónico válida?' Además, si se ha rellenado el campo Sitio web, ¿'¿Este campo contiene una URL válida?'
- Página anterior Validación de formularios PHP
- Página siguiente Formularios PHP URL / E-mail