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ónGET.$_POST: parámetros enviados en el envioPOST.$_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: GETREQUEST_URI: URI, sin el dominioQUERY_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 eshttp://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"];