Gestionar formularios HTML en PHP
Todos sabemos lo que es un formulario en nuestro día a día: un conjunto de espacios en los que ponemos nuestros datos para dar cierta información relacionada con algún tema. En internet es exactamente lo mismo, pero no sólo sirven para saber más del usuario, si no también para mejorar búsquedas de información de un sitio. ¿Pero cómo se gestiona esta información introducida por el usuario? Más de una vez he dicho que HTML no es un lenguaje de programación debido a que por si sólo no es capaz de hacer nada concreto más allá de mostrar “cosas” por pantalla. Es por eso que entra en juego PHP, y junto a él dos métodos para tratar dicha información: GET y POST. Vamos a ver de qué se trata y qué diferencias hay entre ellos.
Formularios inteligentes en HTML gracias a PHP
La gestión de la información es un factor muy importante en la actualidad a la hora de desarrollar recursos y servicios web: desde la obtención de datos de un servidor, guardar datos nuevos en éste, etc. Es por eso que el lenguaje PHP tiene dos métodos internos ya incorporados (algo así como dos recursos que ya trae consigo) que se hicieron con esa única finalidad: la gestión de los datos. GET y POST se usan para muchas cosas pero antes vamos a ver qué diferencia hay y que significa:
- Método GET, del inglés “obtener”, nos sirve para recibir datos del servidor y guardarlo en variables. Esto es muy útil cuando estamos trabajando con recursos que ya existen. Os pongo un ejemplo sencillo: Twitter. Esta famosa red social no guarda en vuestro teléfono u ordenador los mensajes publicados por los usuarios, ni tampoco los generáis vosotros. Dichos mensajes ya existen y lo que hay que hacer es recuperarlos. Twitter es una red social que muestra la información gracias a este método.
- Método POST, del inglés “publicar”, aunque aquí la traducción no se debe coger tan literal. POST sirve para registrar datos en el servidor. Se usa sobretodo para usuarios nuevos y toda clase de información no existente aún.
Si nos paramos a pensar nos damos cuenta de que no hay uno sin el otro: GET no puede obtener datos si éstos no existen, y de nada sirve registrarlos con POST si no vamos a recuperarlos y, por lo tanto, no usarlos en ningún momento.
Pero después de esta introducción, un poco larga quizá, os estaréis preguntando “¿pero qué tiene que ver todo esto con la gestión de formularios?”. Tranquilos, ahora viene lo interesante. ¿Alguna vez os habéis encontrado en la situación de que queréis cambiar vuestras preferencias o datos en alguna página, y los campos ya están llenos con la información antigua? Esto se logra gracias a GET. Aquí observamos una clara práctica para facilitar la vida al usuario, y por lo tanto, una buena práctica de usabilidad.
La teoría detrás de todo esto es la siguiente: los usuarios no siempre quieren cambiar todos los datos personales con los que se registraron. A veces quizá sólo quieren cambiar la contraseña, o su fecha de nacimiento, o algún dato puntual. No les vamos a hacer llenar de nuevo todo lo que necesitamos saber de él si lo va a dejar igual. Pero a su vez, queremos mostrarle los datos antiguos, por la misma razón de modificar alguno de ellos. ¿Esto cómo se gestiona? De una manera muy fácil y básica. Antes de cargar la web HTML tenemos a nuestra disposición un dato muy importante de este usuario. Se trata de su identificador en la base de datos. Recordemos que para poder modificar datos personales primero deben haber hecho login. En otras palabras, nosotros sabemos en todo momento quién está ahí.
A partir de aquí, nosotros desarrollamos un pequeño script con la única función de obtener todos esos datos y guardarlos en variables. Seguidamente se carga la página pero, en vez de tener los campos vacíos, estos se llenan con dichos datos. Todo esto gracias a GET, el cual ya nos pone facilidades para llevar a cabo todo este proceso. Si nosotros quisiéramos hacerlo sin ningún método, el trabajo sería tan grande…no queréis ni imaginarlo.
Sé que todo esto es más complejo de lo habitual, y de hecho la gestión de formularios con PHP no es una tarea fácil de aprender. Hay muchos conceptos que se van mezclando e incluso a mi en su momento me costó comprender cómo funcionaba. Pero una vez lo dominas te das cuenta que su potencial es muy amplio y, si recordáis lo que os expliqué de RESTful, se basa en este concepto. Os diré más aún, el tratamiento de datos en aplicaciones se basa íntegramente en este concepto.
¿Lo veis complicado o demasiado complejo? ¿O por otro lado veis la utilidad de esta gestión? Hacédmelo saber en los comentarios
Curso relacionado: Curso de Creación y Desarrollo de Páginas Web