martes, 14 de octubre de 2014

PHP (06) Validaciones (01) Comprobando datos

En muchas ocasiones es necesario comprobar que los datos que necesitamos para el servidor están correctos. Esto hoy en día puede resultar muy sencillo con html5, utilizando el type y el atributo required, también se puede hacer comprobándolo desde el cliente, pero no esta de más hacerlo en el servidor con php, ya que como vimos en la entrada con el ejemplo de sesiones, headers, traduccion y gestion de usuarios, php debe de hacer sus comprobaciones y actuar según en que punto se encuentren los datos.

Para ellos vamos a comenzar estudiando la entrada de datos escritos y su reacción en php:
<html>
 <head>
  <title>
  Comprobación de datos requeridos
  </title>
 </head>
 <body>
  <h1>Comprobación de datos requeridos</h1>
  <?php
  /*
  Comenzamos buscando si visto esta activo, y vamos llamando a las
  funciones correspondientes para controlar el formulario
  */
   $errors_array = array();
   if(isset($_REQUEST["visto" ])){
    comprobarDatos();
    if(count($errors_array) != 0){
     mostrarErrores();
     mostrarInicio();
    }
    else {
     respuesta();
    }
   }
   else {
    mostrarInicio();
   }
   /*
   Muestra el formulario
   */
   function mostrarInicio()
   {
    echo "<form method='post'>" ;
    echo "<p>¿Cuál es su nombre?</p>" ;
    echo "<input name='flavor' type='text'>" ;
    echo "<input type='submit' value='Enviar'>" ;
    echo "<input type='hidden' name='visto' value='already_seen'>" ;
    echo "</form>" ;
   }
   /*
   Comprueba que el campo de texto no este en blanco, de ser así introduce un mensaje
   en el array global
   */
   function comprobarDatos()
   {
    global $errors_array;
    if($_REQUEST["flavor" ] == "" ) {
     $errors_array[] = "<font color='red'>Indique su nombre</font>" ;
    }
   }
   /*
   recoge los errores del array global, lo recorre y muestra su contenido
   */
   function mostrarErrores()
   {
    global $errors_array;
    foreach ($errors_array as $err){
     echo '<p>' . $err . '</p>';
    }
   }
   /*
   Muestra la respuesta del servidor cuando todo esta correcto
   */
   function respuesta()
   {
    echo "Bienvenido a PHP: ";
    echo $_REQUEST["flavor"];
   }
   ?>
 </body>
</html>

Analizando este script podemos ver que el verdadero control se encuentra en la estructura de control de flujo del principio del código php, donde nuestro script comprueba si esta enviado el dato, y de ser así comienza a controlar si este es correcto o esta vacío, mostrando mensajes dependiendo del caso, desde mostrar mensaje de error y de nuevo el formulario, a mostrar la respuesta correcta si no hay errores o mostrar la página solo con formulario si aun no se han enviado los datos.

Las funciones están explicadas en el propio código y ya debemos de ir conociendo que van haciendo si hemos seguido el tutorial de php desde el principio, aun así hago un breve resumen de cada una a continuación:
  • mostrarInicio() muestra lo que la web mostraría en su inicio, que en este caso es un formulario preguntando el nombre
  • comprobarDatos() comprueba que la respuesta al servidor no sea una cadena vacía, y si es así introduce un elemento en el array global de errores
  • mostrarErrores() recorre el array global y muestra los errores cometidos
  • respuesta() una vez recogida la variable al servidor, este la recoge y muestra el mensaje pertinente.

No hay comentarios:

Publicar un comentario