Los últimos tutoriales de desarrollo web
 

PHP 5 Formas - campos obligatorios


En este capítulo se muestra cómo hacer que los campos de entrada necesarios y crear mensajes de error si es necesario.


Los campos necesarios - PHP

A partir de la tabla de reglas de validación en la página anterior, vemos que el "Name" , "E-mail" y "Gender" se requieren campos. Estos campos no pueden estar vacíos y deben ser completado en el formulario HTML.

Campo Las reglas de validación
Nombre Necesario. + Sólo puede contener letras y espacios en blanco
Email Necesario. + Debe contener una dirección válida de correo electrónico (with @ and .)
Sitio web Opcional. Si está presente, debe contener una URL válida
Comentario Opcional. Campo de entrada multilínea (textarea)
Género Necesario. Debe seleccionarse uno

En el capítulo anterior, todos los campos de entrada eran opcionales.

En el siguiente código que hemos añadido algunas nuevas variables: $ nameErr, emailErr $, $ genderErr y $ websiteErr. Estas variables de error sostendrán mensajes de error para los campos obligatorios. También hemos añadido una declaración else if para cada variable $ _POST. Esto comprueba si la variable $ _POST está vacía (with the PHP empty() función). Si está vacía, un mensaje de error se almacena en las diferentes variables de error, y si no está vacía, envía los datos de entrada de 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 - mostrar los mensajes de error

Luego, en el formulario HTML, se añade un pequeño script después de cada campo requerido, lo que genera el mensaje de error correcto si es necesario (es decir, si el usuario intenta enviar el formulario sin necesidad de rellenar 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
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
Ejecutar ejemplo »

El siguiente paso es la validación de los datos de entrada, es decir "Does the Name field contain only letters and whitespace?" Y "Does the E-mail field contain a valid e-mail address syntax?" Y si se llena a cabo, "Does the Website field contain a valid URL?" .