Las variables súper globales se habilitaron después de PHP 4.1.0. Son variables que vienen con el sistema PHP y están disponibles en todo el alcance de un script.
Varios superglobales están predefinidos en PHP, lo que significa que están disponibles en todo el alcance de un script. Puedes usarlo en funciones y clases sin instrucciones especiales.
Lista de variables súper globales de PHP:
$GLOBALES
$_SERVIDOR
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
En este capítulo explicaremos varias variables superglobales de uso común y presentaremos las variables restantes en los próximos capítulos.
$GLOBALS es un grupo de variables súper global en PHP al que se puede acceder en todo el alcance de un script PHP.
$GLOBALS es una matriz combinada global que contiene todas las variables. El nombre de la variable es la clave de la matriz.
El siguiente ejemplo muestra cómo utilizar la variable súper global $GLOBALS:
<?php $x = 75 ; $ y = 25 ; suma ( ) { $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] ; suma ( ) ; eco $z ? >
En el ejemplo anterior, z es una variable súper global en la matriz $GLOBALS, a la que también se puede acceder fuera de la función.
$_SERVER es una matriz que contiene información como encabezado, ruta y ubicaciones de script. Los elementos de esta matriz los crea el servidor web. No hay garantía de que cada servidor ofrezca todos los artículos; los servidores pueden ignorar algunos o servir artículos que no figuran aquí.
El siguiente ejemplo muestra cómo utilizar elementos en $_SERVER:
<?php eco $ _SERVER [ ' PHP_SELF ' ] ; " <br> " ; eco $ _SERVER [ ' SERVIDOR_NOMBRE ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_HOST ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_REFERER ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_USER_AGENT ' ] ; " <br> " ; eco $_SERVER [ ' SCRIPT_NAME ' ] ? >
La siguiente tabla enumera los elementos importantes en todas las variables $_SERVER:
elemento/código | describir |
---|---|
$_SERVER['PHP_SELF'] | El nombre de archivo del script que se está ejecutando actualmente, relacionado con la raíz del documento. Por ejemplo, usar $_SERVER['PHP_SELF'] en un script en http://example.com/test.php/foo.bar dará como resultado /test.php/foo.bar. La constante __FILE__ contiene la ruta completa y el nombre del archivo actual (es decir, el que contiene). A partir de la versión 4.3.0 de PHP, esta variable contendrá el nombre del script si PHP se ejecuta en modo de línea de comandos. Esta variable no está disponible en versiones anteriores. |
$_SERVER['GATEWAY_INTERFACE'] | La versión de la especificación CGI utilizada por el servidor, por ejemplo, "CGI/1.1". |
$_SERVER['SERVER_ADDR'] | La dirección IP del servidor donde se está ejecutando actualmente el script. |
$_SERVER['SERVER_NAME'] | El nombre de host del servidor donde se ejecuta actualmente el script. Si el script se ejecuta en un host virtual, el nombre lo determina el valor establecido para ese host virtual. (por ejemplo: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | Cadena de identificación del servidor, proporcionada en la información del encabezado al responder a la solicitud. (por ejemplo: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | El nombre y la versión del protocolo de comunicación utilizado al solicitar la página. Por ejemplo, "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | El método de solicitud utilizado para acceder a la página, por ejemplo, "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | La marca de tiempo en la que comenzó la solicitud. Disponible desde PHP 5.1.0. (por ejemplo: 1377687496) |
$_SERVER['QUERY_STRING'] | cadena de consulta (cadena de consulta), si la hay, a través de la cual se realiza el acceso a la página. |
$_SERVER['HTTP_ACCEPT'] | El contenido del elemento Aceptar: en el encabezado de la solicitud actual, si existe. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | El contenido del elemento Accept-Charset: en el encabezado de la solicitud actual, si existe. Por ejemplo: "iso-8859-1,*,utf-8". |
$_SERVER['HTTP_HOST'] | El contenido del campo Host: en el encabezado de la solicitud actual, si está presente. |
$_SERVER['HTTP_REFERER'] | Dirige al agente de usuario a la dirección de la página anterior a la página actual, si existe. Determinado por la configuración del agente de usuario. No todos los agentes de usuario configurarán este elemento y algunos también proporcionan la función de modificar HTTP_REFERER. En resumen, el valor no es digno de confianza. ) |
$_SERVIDOR['HTTPS'] | Establezca un valor que no esté vacío si se accede al script a través del protocolo HTTPS. |
$_SERVER['REMOTE_ADDR'] | La dirección IP del usuario que ve la página actual. |
$_SERVER['REMOTE_HOST'] | El nombre de host del usuario que navega por la página actual. La resolución inversa de DNS no depende del REMOTE_ADDR del usuario. |
$_SERVER['REMOTE_PORT'] | El número de puerto utilizado en la máquina del usuario para conectarse al servidor web. |
$_SERVER['SCRIPT_FILENAME'] | La ruta absoluta del script que se está ejecutando actualmente. |
$_SERVER['SERVER_ADMIN'] | Este valor especifica el parámetro SERVER_ADMIN en el archivo de configuración del servidor Apache. Si el script se ejecuta en un host virtual, este valor es el de ese host virtual. (por ejemplo: [email protected]) |
$_SERVER['SERVER_PORT'] | El puerto utilizado por el servidor web. El valor predeterminado es "80". Si utiliza una conexión segura SSL, este valor es el puerto HTTP establecido por el usuario. |
$_SERVER['SERVER_SIGNATURE'] | Una cadena que contiene la versión del servidor y el nombre del host virtual. |
$_SERVER['PATH_TRANSLATED'] | La ruta base del sistema de archivos (no la raíz del documento) donde se encuentra el script actual. Este es el resultado después de que se haya tomado una imagen del servidor desde una ruta virtual a una real. |
$_SERVER['SCRIPT_NAME'] | Contiene la ruta al script actual. Esto es útil cuando la página necesita apuntar a sí misma. La constante __FILE__ contiene la ruta completa y el nombre de archivo del script actual (como un archivo de inclusión). |
$_SERVER['SCRIPT_URI'] | URI se utiliza para especificar la página a la que se accederá. Por ejemplo "/index.html". |
PHP $_REQUEST se utiliza para recopilar datos enviados mediante formularios HTML.
El siguiente ejemplo muestra un formulario con campos de entrada y botones de envío. Cuando el usuario envía datos del formulario haciendo clic en el botón "Enviar", los datos del formulario se enviarán al archivo de secuencia de comandos especificado en el atributo de acción de la etiqueta <form>. En este ejemplo, especificamos el archivo para manejar los datos del formulario. Si desea que otro archivo PHP maneje estos datos, puede modificar el nombre del archivo de script especificado. Luego, podemos usar la variable súper global $_REQUEST para recopilar datos del campo de entrada en el formulario:
<html><body><form método="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nombre: <input type="text" name="fname"><tipo de entrada ="enviar"></formulario><?php $nombre = $_REQUEST['fname']; echo $nombre ?></body></html>
PHP $_POST se usa ampliamente para recopilar datos de formularios. Especifique este atributo en la etiqueta del formulario HTML: "method="post".
El siguiente ejemplo muestra un formulario con campos de entrada y botones de envío. Cuando el usuario envía datos del formulario haciendo clic en el botón "Enviar", los datos del formulario se enviarán al archivo de secuencia de comandos especificado en el atributo de acción de la etiqueta <form>. En este ejemplo, especificamos el archivo para manejar los datos del formulario. Si desea que otro archivo PHP maneje estos datos, puede modificar el nombre del archivo de script especificado. Luego, podemos usar la variable súper global $_POST para recopilar los datos del campo de entrada en el formulario:
<html><body><form método="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nombre: <input type="text" name="fname"><tipo de entrada ="enviar"></formulario><?php $nombre = $_POST['fname']; echo $nombre ?></body></html>
PHP $_GET también se usa ampliamente para recopilar datos de formularios. Especifique este atributo en la etiqueta del formulario HTML: "method="get".
$_GET también puede recopilar datos enviados en la URL.
Supongamos que tenemos una página HTML con hipervínculo que contiene parámetros:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">Prueba $GET</a></body></html>
Cuando el usuario hace clic en el enlace "Prueba $GET", los parámetros "asunto" y "web" se enviarán a "test_get.php". Puede utilizar la variable $_GET en el archivo "test_get.php" para obtener esto. datos.
El siguiente ejemplo muestra el código del archivo "test_get.php":
<html><cuerpo><?php echo "Estudiar" $_GET['subject'] "en" $_GET['web'];?></body></html>.
Consejo: Si desea obtener más información sobre $_POST y $_GET, visite nuestro capítulo de Formularios PHP.