Formularios PHP - Campos obligatorios
Este capítulo muestra cómo hacer que los campos de entrada sean obligatorios y crear mensajes de error si es necesario.
PHP - Campos obligatorios
En la tabla de reglas de validación de la página 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.
Field | Validation Rules |
---|---|
Name | Required. + Must only contain letters and whitespace |
Required. + Must contain a valid email address (with @ and .) | |
Website | Optional. If present, it must contain a valid URL |
Comment | Optional. Multi-line input field (textarea) |
Gender | Required. Must select one |
En el capítulo anterior, todos los campos de entrada eran opcionales.
En el siguiente código hemos agregado algunas variables nuevas: $nameErr, $emailErr, $genderErr y $websiteErr. Estas variables de error contendrán mensajes de error para los campos obligatorios. También hemos agregado una if else
declaración para cada variable $_POST. Esto verifica si la variable $_POST está vacía (con la empty()
función PHP). Si está vacío, se almacena un mensaje de error en las diferentes variables de error, y si no está vacío, envía los datos de entrada del usuario a través de la test_input()
función:
<?php
// define variables and set to empty values
$nameErr = $emailErr
= $genderErr = $websiteErr = "";
$name = $email = $gender = $comment =
$website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"]))
{
$emailErr = "Email is required";
} 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 = "Gender is required";
} else
{
$gender = test_input($_POST["gender"]);
}
}
?>
PHP - Muestra los mensajes de error
Luego, en el formulario HTML, agregamos un pequeño script después de cada campo obligatorio, que genera el mensaje de error correcto si es necesario (es decir, si el usuario intenta enviar el formulario sin completar los campos obligatorios):
Ejemplo
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
El siguiente paso es validar los datos de entrada, es decir, "¿El campo Nombre contiene solo letras y espacios en blanco?" y "¿El campo Correo electrónico contiene una sintaxis de dirección de correo electrónico válida?", y si se completa, " ¿El campo Sitio web contiene una URL válida?".