PHP Formularios - Campos obligatorios
En este capítulo veremos cómo configurar los campos obligatorios del formulario y los mensajes de error.
PHP - Campos obligatorios
En el capítulo anterior presentamos las reglas de validación del formulario. Podemos ver que los campos "Nombre", "E-mail" y "Sexo" son obligatorios; cada campo no puede estar vacío.
| Campo | Reglas de validación |
|---|---|
| Nombre | Obligatorio. + Solo puede contener letras y espacios |
| Obligatorio. + Debe contener una dirección de correo electrónico válida (que contenga "@" y ".") | |
| URL | Opcional. Si existe, debe contener una URL válida |
| Notas | Opcional. Campo multilínea (área de texto). |
| Sexo | Obligatorio. Debe seleccionar uno. |
En los capítulos anteriores, todos los campos de entrada eran opcionales.
En el siguiente código hemos añadido algunas nuevas variables: $nameErr, $emailErr, $genderErr y $websiteErr. Estas variables de error se mostrarán en los campos obligatorios. También añadimos una declaración if else para cada variable $_POST. Estas declaraciones comprobarán si la variable $_POST está vacía (usando la función empty() de PHP). Si está vacía, se mostrará el mensaje de error correspondiente. Si no está vacía, los datos se pasarán a la función test_input():
<?php
// 定义变量并默认设为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "名字是必需的。";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "邮箱是必需的。";
} 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 = "性别是必需的。";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
PHP - Mostrar mensajes de error
En el siguiente formulario de ejemplo HTML, hemos añadido algunos scripts para cada campo. Cada script mostrará un mensaje de error cuando la información ingresada sea incorrecta. (Si el usuario envía el formulario sin completar la información, se mostrarán mensajes de error):
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> 名字: <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> 网址: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 备注: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> 性别: <input type="radio" name="gender" value="female">女 <input type="radio" name="gender" value="male">男 <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form>
Otras extensiones