Categorías: PHP y MySQL

PHP post y get: Métodos de envío y recepción de formularios

Voy a repasar los métodos PHP post y get para el envío y recepción de formularios web.

Quizás a muchos nos resulten obvios estos 2 métodos, pero conviene repasar y saber cuando usar uno u otro. En las últimas líneas explicaré que método usar según la necesidad.

Quizás os interese leer este otro post para enviar cadenas vía URL:

Envío de formularios con método post y recepción con la variable PHP $_POST

Comienzo con el metodo de envío post y su recepción con la variable de PHP $_POST. He preparado este ejemplo para ver su sintaxis y funcionamiento:

<form action="012-php-post.php" method="POST" name="formulario">
    Introduce la edad: <input name="edad" type="number" /> 
    Introduce la fecha de nacimiento <input name="fechanac" type="date" />
    <input type="submit" value="Enviar" />
</form>

Tal y como veis el formulario consta de:

Esto sería un formulario básico de envío por POST, ahora nos falta el código PHP para recoger los datos del envío que se almacenan en la variable o array $_POST.

$_POST es un array que contiene el nombre de los diferentes campos del formulario con sus respectivos valores. Aquí el codigo:

if($_POST)
    echo "la edad recibida es: " .$_POST['edad']. " y la fecha de nacimiento recibida es " .$_POST['fechanac'];

Explico las líneas superiores:

  • Primero compruebo si $_POST contiene valores, es decir, si no viene vacío.
  • En caso afirmativo muestro el contenido de cada elemento del array  $_POST, esto se hace accediendo al array mediante el atributo name de cada input que queremos mostrar, por ejemplo, $_POST[‘edad’].

Envío de formularios con método get y recepción con la variable PHP $_GET

Ahora toca ver la sintaxis del metodo de envío get y su recepción con la variable de PHP $_GET. He preparado este ejemplo para ver su funcionamiento:

<form action="012-php-post.php" method="GET" name="formulario">
    Introduce la edad: <input name="edad" type="number" /> 
    Introduce la fecha de nacimiento <input name="fechanac" type="date" />
    <input type="submit" value="Enviar" />
</form>

El formulario es idéntico al anterior excepto el metódo de envío que es ‘GET’. Con el array $_GET accederemos al contenido enviado. Aquí el codigo:

if($_GET)
    echo "la edad recibida es: " .$_GET['edad']. " y la fecha de nacimiento recibida es " .$_GET['fechanac'];

Por lo tanto a nivel de código no hay grandes diferencias entre el método post y get. Pero si os fijáis en este último ejemplo los campos del formulario y sus valores están a la vista en la URL.

Por ejemplo en nuestro caso: https://www.anerbarrena.com/demos/2014/012-php-get.php?edad=34&fechanac=1979-04-16

¿Cuándo usar el método de envío de formularios POST y cuando usar GET?

Estas son las carácteristicas más importantes de estos 2 envíos.

  • El método post envía los datos vía HTTP POST.
  • Mientras que el método get envía los datos mediante los parámetros de URL.
  • Get tiene una limitación de envío de información de unos 2000 caracteres.
  • Toda la información enviada con get está visible en la URL. Dicha URL se puede compartir en redes sociales, email, etc… o añadirla a marcadores.
  • En cambio lo enviado con post es invisible para el usuario.
  • El método post no tiene límite de envío de información y se pueden envíar ficheros.

Yo usaría el método get:

  • Cuando no tengamos que enviar información relevante como passwords, números de tfno, tarjetas de crédito y otras importantes informaciones.

Y usaría el método post:

  • Cuando enviemos información conficencial, ficheros o abundante información que el método get no permita enviar por su elevado volumen de caracteres.

Ejemplo de PHP foreach para recorrer los arrays $_POST y $_GET

Quizás os valga de ejemplo este post ‘PHP foreach(): Bucles para recorrer arrays y objetos‘ para poder recorrer facílmente todos los elementos eviados a través de los métodos POST y GET.

compartir
Publicado por
Aner Barrena