Supervariables y métodos $_GET y $_POST en formularios PHP

Metodos GET y POST en formularios PHP

$_GET y $_POST son parte de las variables globales de PHP, y pueden invocarse en cualquier parte de los scripts de PHP.

Tanto $_GET como $_POST capturan los datos enviados desde nuestro formulario HTML en función de los métodos de obtención utilizados.

Antes de que el navegador envíe la información proporcionada, la codifica mediante URL encoding, dando como resultado un Query String. Esta codificación es un esquema de keys y values separados por un ampersand &:

El siguiente ejemplo muestra cómo podemos usar $_GET y $_POST con el formulario HTML para recopilar datos.

Recopilación de datos desde el formulario HTML

La página HTML a continuación contiene un formulario HTML con elementos de entrada como campos de texto, casillas de verificación, botones de opción y botones de envío.

Cuando el usuario llena estos elementos y hace clic en el botón de enviar, los datos se envían a «recoger.php» (por ejemplo), que se especifica en el elemento de formulario de acción.

En caso de no especificar destino, se enviarán los datos al mismo archivo en el que se encuentra nuestro formulario.

Método HTML GET

Echa un vistazo al código de formulario HTML a continuación.

En el elemento de formulario, necesitamos especificar cómo vamos a enviar los datos al servidor en el elemento de formulario «method».

<form action="recoger.php" method="get"> 
<input type="text" name="name" placeholder="Your Name">
</input><br/> <input type="text" name="email" placeholder="Your Email">
</input><br/> <input type="text" name="contact" placeholder="Your Mobile">
</input><br/> <input type="submit" name="submit" value="Submit"></input> 
</form>

Usando PHP, sólo usamos la variable global $_GET en el archivo recoger.php, que recopilará los valores enviados desde la página FORM de HTML.

recoger.php

<?php 
if( $_GET["name"] || $_GET["email"] || $_GET["contact"]) { 
echo "Welcome: ". $_GET['name']. "<br />"; 
echo "Your Email is: ". $_GET["email"]. "<br />"; 
echo "Your Mobile No. is: ". $_GET["contact"]; } 
?>

Y así recogemos los datos desde el formulario.

El defecto del método GET de HTML es que los valores enviados al servidor son visibles a través de la barra de direcciones del navegador, por lo que no se recomienda el envío de datos confidenciales, como contraseñas, claves secretas que utilizan el método GET.

Además, la duración de los datos que se pueden enviar con este método se limita a la longitud de los caracteres permitidos en la URL por diferentes navegadores.

Aquí hay algunas cosas a tener en cuenta al usar el método GET:

Las solicitudes GET

  • Se pueden almacenar en caché
  • Permanecen en el historial del navegador
  • Se pueden marcar como favoritos
  • Nunca deben usarse cuando se trata de datos confidenciales
  • Tienen restricciones de longitud
  • Deben usarse solo para recuperar datos

Así que la forma preferida de enviar datos al servidor ha sido siempre el método POST.

 

Método HTML POST

Se puede enviar una solicitud posterior de gran tamaño utilizando el método POST, ya que los formularios HTML 4.0 también pueden enviar datos en varias partes / datos de formulario como se define en RFC 2388.

El método POST funciona de manera similar a GET, pero es más seguro que GET porque los valores no están visibles en la barra de direcciones y no se almacenarán en el historial del navegador.

Para usar POST, simplemente cambie el método del elemento a POST como se muestra a continuación:

HTML

<form action = "recoger.php" method = "POST"> 
Nombre de usuario: <input type = "text" name = "user_name" /> 
Ubicación: <input type = "text" name = "user_location" /> 
<input type = "submit" value = "Send My Info"> 
</form>

 

Y para recopilar los valores del campo de entrada, solo usaremos PHP $ _POST Variables predefinidas:

PHP

<? php 
echo 'Hola'. $_POST ["user_name"]; 
echo $_POST ["user_location"]. ' es un lugar muy bonito '; 
?>

 

Beneficios de utilizar el método POST.

  • Nunca se almacenan en caché
  • No permanecen en el historial del navegador
  • Tampoco pueden ser marcadas
  • Y no tienen restricciones en la longitud de los datos

Manejo de errores

Siempre debemos tener cuidado al recopilar datos GET / POST, ya que si un usuario ingresa valores vacíos, la secuencia de comandos de PHP anterior terminará con un mensaje de error en la pantalla.

Para lidiar con errores innecesarios podemos usar las funciones de manejo de variables de PHP, algo como  isset().

Esta función devolverá TRUE si existe la variable, lo que nos permite mostrar un mensaje amistoso en lugar de un error desagradable.

Modifiquemos recoger.php para que pueda manejar con gracia las variables vacías.

PHP

<? php 
if (! isset ($ _ POST ["user_name"])) {
die("Por favor regrese e ingrese el nombre"); 
} 
if (! isset ($ _ POST ["user_location"])) {
die (); 
} 
// Si los 2 campos han sido rellenados en el formulario
echo 'Hola'. $ _ POST ["user_name"]; 
echo $ _POST ["user_location"]. ' es un lugar fresco '; 
?>

El ejemplo anterior es la forma más sencilla de manejar los errores, pero hay mejores formas de hacerlo sin usar die ().

Espero que este artículo te haya ayudado a comprender PHP $_GET, $_POST y manejo de errores.

Compartir esta entrada.

One thought on “Supervariables y métodos $_GET y $_POST en formularios PHP

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CAPTCHA ImageChange Image