EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
PF Preguntas - Foro

Cómo obtener los datos de un formulario mediante PHP

Programación PHP  
 
Cómo obtener los datos de un formulario mediante PHP

Imagina que estas desarrollando un sitio web para que los usuarios se inscriban con un nombre y un correo electrónico. Has creado un formulario simple donde éstos introducirán sus datos. Pero, ¿qué ocurre cuando el usuario pulsa sobre el botón de envío? Si exclusivamente usas HTML, realmente no pasará nada, solo se cargará la página que hayas configurado en el atributo action del formulario.

La mayoría de los sitios web disponen de algún tipo de formulario para el envío de información por parte de los usuarios, ya sean formularios de registro, formularios para el login, formularios de contacto, etc. Para poder rescatar los datos enviados por estos formulario tenemos que hacer uso de algún lenguaje del lado del servidor, en este caso PHP.

 

Cómo obtener, en PHP, los datos enviados mediante un formulario

 

Para este cometido, PHP cuenta con dos variables globales predefinidas, estas son $_GET y $_POST. Cuando un formulario es enviado hacia alguna página, estas dos variables guardan los datos, dependiendo del tipo de envío que se realice. Veámoslo con un ejemplo:

Supongamos que tenemos un formulario con esta etiqueta de inicio. Tal como podemos ver, este formulario realizará el envío de sus datos, una vez pulsemos sobre el botón de enviar, a la página login.php e, igualmente, tal como hemos configurado en el atributo method, desde esta página podemos obtener dichos datos mediante la variable predefinida $_GET.

Si hubiésemos usado method=”POST”, tendríamos que hacer uso de la variable $_POST para recoger estos datos enviados. Pero, ¿cuál es la diferencia entre usar el método de envío GET o POST?

Envío de formulario mediante el método GET

Para visualizarlo mejor, vamos a hacer uso de un ejemplo a lo largo del artículo. Tenemos un formulario simple de acceso a una parte privada de nuestra web en el cual tendremos que introducir nuestro usuario y contraseña:

Vemos en este ejemplo que el formulario realizará el envío a la página login.php, en la cual tendremos que realizar la recogida de datos mediante la variable $_GET. Además, este formulario cuenta con tres valores para el envío. Estos valores se definen en el atributo name de cada una de las etiquetas input, así, estos valores son: usuario, contrasena y submit.

Recogida de datos enviados por el formulario

Una vez que el usuario pulsa el botón de Entrar, los datos son enviados a la página login.php. Desde esta página es desde donde debemos manipularlos. Vamos a verlo con un ejemplo:

La variable global $_GET guarda en un array asociativo la información que se envíe a dicha página. Para obtenerla, simplemente accedemos a dicho array utilizando como claves los nombres de las variables asignados a los campos del formulario de envío mediante el atributo name.

Una vez tenemos los valores guardados en variables, podremos realizar las actuaciones oportunas sobre ellos: guardarlos en una base de datos, verificar si son correctos, mostrarlos al usuario, …

Envío y recogida de datos enviados mediante el método POST

El envío y recogida de los datos de un formulario mediante POST se hace de manera similar y, simplemente, cambian el método de envío y el método de recogida. Vamos a verlo:

Esta vez, configuramos nuestro formulario para que el envío se realice mediante el método POST. Análogamente a la forma anterior, vamos a ver la recogida de datos en la página login.php.

Como podemos ver, la forma de recogida es idéntica salvo que, esta vez, la realizamos a través de la variable global predefinida $_POST. Igualmente, en esta variable, se guardan, en forma de array asociativo, las variables enviadas a través del formulario.

Si esto es así, entonces, ¿cuál es la diferencia entre enviar un formulario a través del método GET o a través del método POST?

Diferencia entre el método GET y POST en el envío de formularios

La diferencia radica en cómo se envían los datos. Si usas el método GET, puedes observar que al pulsar sobre el botón Entrar, la URL de la página destino es algo parecido a esto:

El método GET anexa los distintos campos, junto con sus valores, a la dirección destino del formulario, por lo que sería fácil obtener dichos campos simplemente viendo la dirección, especialmente el campo contraseña, el cual es información sensible. Igualmente, el método GET no permite un envío ilimitado de información ya que tiene un máximo prefijado por la longitud de la URL resultante, de unos 3000 caracteres como máximo.

Por el contrario, el método POST no realiza dicho anexado de información a la dirección URL de destino, sino que lo hace dentro del cuerpo de la petición HTTP, por lo que no es visible al usuario. Este método se usa normalmente cuando se envía información personal o confidencial. A diferencia del método GET, el método POST no tiene un máximo del tamaño de información enviada. Esta estará solo acotada por la configuración del servidor destino.

 

Tal como hemos visto, existen dos formas de realizar el envío de un formulario de datos. No podemos usar simplemente HTML para recoger estos datos, sino que tenemos que hacer uso de un lenguaje de programación del lado del servidor, en este caso PHP. También hemos visto que, dependiendo de tipo de información que vayamos a enviar, es mejor realizar un envío mediante el método GET o mediante el método POST, siempre teniendo en cuenta el volumen de la misma y su privacidad.

 

Déjanos un comentario o entra al  Foro
Share on Facebook Tweet about this on Twitter Share on Google+ Pin on Pinterest Share on Reddit Share on VK Share on StumbleUpon Share on Tumblr Share on LinkedIn Email this to someone Print this page