English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial PHP Básico

Tutorial PHP Avanzado

PHP y MySQL

Manual de Referencia PHP

GET y POST de PHP

En este tutorial, aprenderá cómo enviar información al servidor utilizando los métodos HTTP GET y POST, así como cómo recuperar información utilizando PHP.

Métodos para enviar información al servidor

Los navegadores web utilizan dos métodos HTTP (Protocolo de Transferencia de Hipertexto) (GET y POST) para comunicarse con el servidor. Ambos métodos transmiten información de manera diferente y tienen ventajas y desventajas diferentes, como se describe a continuación.

Método GET

En el método GET, los datos se envían como parámetros de la URL, generalmente en forma de una cadena de nombre y valor separados por el símbolo "&". Un URL con datos GET se ve así:

http://www.example.com/action.php?nombre=john&edad=24

La parte en negrita de la URL es el parámetro GET, mientras que la parte en cursiva es el valor de estos parámetros. Se pueden insertar varios parámetros=valor en la URL mediante la unión con el símbolo "&". Solo se pueden enviar datos de texto simples a través del método GET.

Ventajas y desventajas del método GET

  • Dado que los datos enviados con el método GET se muestran en la URL, se puede agregar un marcador a la página utilizando valores específicos de la cadena de consulta.

  • El método GET no es adecuado para transmitir información sensible, como nombres de usuario y contraseñas, ya que esta información es completamente visible en la cadena de consulta de la URL y podría almacenarse en la memoria del navegador del cliente como parte del acceso a la página.

  • Dado que el método GET asigna los datos a las variables de entorno del servidor, la longitud de la URL está limitada. Por lo tanto, hay un límite en la cantidad total de datos que se pueden enviar.

PHP proporciona la variable global superglobal $_GET para acceder a toda la información enviada a través de la URL o mediante el método "GET" a través de un formulario HTML.

<!DOCTYPE html>
<html>
<head>
    <title>Ejemplo en línea PHP Método GET</title>
</head>
<?php
if(isset($_GET["name"])){
    echo "<p>Hola, " . $_GET["name"] . "</p>";
}
?>
<form método="get" acción="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Nombre:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Enviar">
</form>

Método POST

En el método POST, los datos se envían al servidor como paquete en una comunicación separada con el script de procesamiento. Los datos enviados mediante el método POST no son visibles en la URL.

Ventajas y desventajas del método POST

  • Es más seguro que GET, ya que la información ingresada por el usuario nunca se ve en la cadena de consulta de la URL o en los registros del servidor.

  • Hay restricciones mayores en la cantidad de datos que se pueden transmitir, y se puede enviar datos de texto y datos binarios (subir archivos) mediante POST.

  • Dado que los datos enviados mediante el método POST no son visibles en la URL, no se puede agregar un marcador específico a la página.

Al igual que $_GET, PHP proporciona otra variable global superglobal $_POST para acceder a toda la información enviada mediante el método POST o mediante el uso de method="POST" en un formulario HTML.

<!DOCTYPE html>
<html>
<head>
    <title>Ejemplo en línea PHP de método POST</title>
</head>
<?php
if(isset($_POST["name"])){
    echo "<p>Hola, " . $_POST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Nombre:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Enviar">
</form>

Variable $ _REQUEST

PHP proporciona otra variable global superglobal $_REQUEST, que contiene los valores de las variables $_GET y $_POST, así como los valores de la variable global superglobal $_COOKIE.

<!DOCTYPE html>
<html>
<head>
    <title>Ejemplo en línea PHP de variable $_REQUEST</title>
</head>
<?php
if(isset($_REQUEST["name"])){
    echo "<p>Hola, " . $_REQUEST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Nombre:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Enviar">
</form>

En la parte avanzada, aprenderás más sobre PHP cookieyel procesamiento de formulariosMás información.

Nota:Las variables globales superglobales $_GET, $_POST y $_REQUEST son integradas, y están siempre disponibles en todos los scopes del script.