Saltar al contenido principal

Variables superglobales de servidor

PHP almacena la información del servidor y de las peticiones HTTP en varios arrays llamados variables superglobales:

  • $_GLOBALS: hace referencia a todas las variables disponibles en un contexto global.
  • $_SERVER: información sobre el servidor.
  • $_GET: parámetros enviados en la petición GET.
  • $_POST: parámetros enviados en el envio POST.
  • $_FILES: información sobre los ficheros cargados via upload.
  • $_COOKIE: contiene las cookies de la petición, las claves del array son los nombres de las cookies.
  • $_SESSION: contiene información de la sesión.
  • $_REQUEST: contiene información de la petición HTTP.
  • $_ENV: información sobre las variables de entorno.

$_SERVER

Si nos centramos en el array $_SERVER podemos consultar las siguientes propiedades:

  • PHP_SELF: nombre del script ejecutado, relativo al document root. Por ejemplo, /tienda/carrito.php.
  • SERVER_SOFTWARE: nombre del software del servidor web. Por ejemplo, NGNIX.
  • SERVER_NAME: dominio, alias DNS. Por ejemplo, xunta.gal.
  • REQUEST_METHOD: GET
  • REQUEST_URI: URI, sin el dominio
  • QUERY_STRING: todo lo que va después de ? en la URL. Por ejemplo, heroe=Batman&nombre=Bruce.
<?php
$_SERVER["PHP_SELF"]; // /u4/401server.php
$_SERVER["SERVER_SOFTWARE"]; // Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/8.4.0
$_SERVER["SERVER_NAME"]; // localhost

$_SERVER["REQUEST_METHOD"]; // GET
$_SERVER["REQUEST_URI"]; // /u4/401server.php?heroe=Batman
$_SERVER["QUERY_STRING"]; // heroe=Batman

Otras propiedades relacionadas:

  • PATH_INFO: ruta extra tras la petición. Si la URL es http://www.php.com/php/pathInfo.php/algo/cosa?foo=bar, entonces $_SERVER['PATH_INFO'] será /algo/cosa.
  • REMOTE_HOST: hostname que hizo la petición.
  • REMOTE_ADDR: IP del cliente.
  • AUTH_TYPE: tipo de autenticación. Por ejemplo, Basic.
  • REMOTE_USER: nombre del usuario autenticado.

Apache crea una clave para cada cabecera HTTP, en mayúsculas y sustituyendo los guiones por subrayados:

  • HTTP_USER_AGENT: agente (navegador).
  • HTTP_REFERER: página desde la que se hizo la petición.
<?php
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
$_SERVER["HTTP_USER_AGENT"];