Los últimos tutoriales de desarrollo web
 

PHP 5 - Variables globales Superglobales


Superglobales se introdujeron en PHP 4.1.0, y son variables incorporadas que siempre están disponibles en todos los ámbitos.


Las variables globales PHP - Superglobals

Varias variables predefinidas en PHP son "superglobals" , lo que significa que siempre son accesibles, independientemente del alcance - y se puede acceder a ellos desde cualquier función, clase o archivo sin tener que hacer nada especial.

El variables de PHP superglobal son:

  • $ GLOBALS
  • $ _SERVER
  • $ _REQUEST
  • $ _POST
  • $ _GET
  • $ _FILES
  • $ _ENV
  • $ _COOKIE
  • $ _SESSION

En este capítulo se explicará algunos de los superglobales, y el resto será explicado en capítulos posteriores.


PHP $ GLOBALS

$ GLOBALS es una variable muy global de PHP que se utiliza para acceder a las variables globales desde cualquier parte del script PHP (también desde el interior de funciones o métodos).

Tiendas PHP todas las variables globales en una matriz llamada $ GLOBALS [ index ]. El índice contiene el nombre de la variable.

El siguiente ejemplo muestra cómo utilizar el súper variable global $ GLOBALS:

Ejemplo

<?php
$x = 75;
$y = 25;
 
function addition() {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();
echo $z;
?>
Ejecutar ejemplo »

En el ejemplo anterior, ya que z es una variable presente dentro de la matriz $ GLOBALS, sino que también se puede acceder desde fuera de la función!


PHP $ _SERVER

$ _SERVER es una variable súper mundial PHP que contiene información sobre los encabezados, rutas y ubicaciones de scripts.

El siguiente ejemplo muestra cómo utilizar algunos de los elementos en $ _SERVER:

Ejemplo

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
Ejecutar ejemplo »

La siguiente tabla muestra los elementos más importantes que pueden ir dentro de $ _SERVER:

Elemento / Código Descripción
$ _SERVER [ 'PHP_SELF'] Devuelve el nombre del script que se está ejecutando
$ _SERVER [ 'GATEWAY_INTERFACE'] Devuelve la versión del Common Gateway Interface (CGI) que utiliza el servidor
$ _SERVER [ 'SERVER_ADDR'] Devuelve la dirección IP del servidor host
$ _SERVER [ 'SERVER_NAME'] Devuelve el nombre del servidor host (such as www.w3ii.com)
$ _SERVER [ 'SERVER_SOFTWARE'] Devuelve la cadena de identificación del servidor (such as Apache/2.2.24)
$ _SERVER [ 'SERVER_PROTOCOL'] Devuelve el nombre y la revisión del protocolo de información (such as HTTP/1.1)
$ _SERVER [ 'REQUEST_METHOD'] Devuelve el método de solicitud utilizado para acceder a la página (such as POST)
$ _SERVER [ 'REQUEST_TIME'] Devuelve la fecha y hora del comienzo de la solicitud (such as 1377687496)
$ _SERVER [ 'QUERY_STRING'] Devuelve la cadena de consulta si se accede a la página a través de una cadena de consulta
$ _SERVER [ 'HTTP_ACCEPT'] Devuelve la cabecera Accept de la petición actual
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] Devuelve el encabezado accept_charset de la petición actual (como UTF-8, ISO-8859-1)
$ _SERVER [ 'HTTP_HOST'] Devuelve el encabezado de host de la petición actual
$ _SERVER [ 'HTTP_REFERER'] Devuelve la URL completa de la página actual (no fiable porque no todos los agentes de usuario soporta)
$ _SERVER [ 'HTTPS'] Se preguntó el guión a través de un protocolo HTTP seguro
$ _SERVER [ 'REMOTE_ADDR'] Devuelve la dirección IP desde la que el usuario está viendo la página actual
$ _SERVER [REMOTE_HOST] Devuelve el nombre de host desde donde el usuario está viendo la página actual
$ _SERVER [ 'REMOTE_PORT'] Devuelve el puerto que se utiliza en la máquina del usuario para comunicarse con el servidor web
$ _SERVER [ 'SCRIPT_FILENAME'] Devuelve el nombre de ruta absoluta del script que se está ejecutando
$ _SERVER [ 'SERVER_ADMIN'] Devuelve el valor dado a la directiva SERVER_ADMIN en el archivo de configuración del servidor web (si la secuencia de comandos se ejecuta en una máquina virtual, que será el valor definido para la máquina virtual) (such as [email protected])
$ _SERVER [ 'SERVER_PORT'] Devuelve el puerto en la máquina del servidor utilizado por el servidor web para la comunicación (such as 80)
$ _SERVER [ 'SERVER_SIGNATURE'] Devuelve la versión del servidor y el nombre de host virtual que se añaden a las páginas generadas por el servidor
$ _SERVER [ 'PATH_TRANSLATED'] Devuelve la ruta del sistema de archivos basado en el script actual
$ _SERVER [ 'SCRIPT_NAME'] Devuelve la ruta del script actual
$ _SERVER [ 'SCRIPT_URI'] Devuelve el URI de la página actual

PHP $ _REQUEST

PHP $ _REQUEST se utiliza para recoger datos después de la presentación de un formulario HTML.

El siguiente ejemplo muestra un formulario con un campo de entrada y un botón de envío. Cuando un usuario envía los datos haciendo clic en "Submit" , los datos del formulario se envía al archivo especificado en la action atributo de la <form> etiqueta. En este ejemplo, nosotros señalamos el propio archivo de datos de formularios de procesamiento. Si desea utilizar otro archivo PHP para procesar los datos del formulario, reemplace que con el nombre de su elección. Entonces, podemos utilizar el súper variable global $ _REQUEST para recoger el valor del campo de entrada:

Ejemplo

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_REQUEST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
Ejecutar ejemplo »

PHP $ _POST

PHP $ _POST es ampliamente utilizado para recoger datos del formulario después de enviar un formulario HTML con method = "post". $ _POST también se usa ampliamente para pasar variables.

El siguiente ejemplo muestra un formulario con un campo de entrada y un botón de envío. Cuando un usuario envía los datos haciendo clic en "Submit" , los datos del formulario se envía al archivo especificado en la action atributo de la <form> etiqueta. En este ejemplo, señalamos que el propio archivo de datos de formularios de procesamiento. Si desea utilizar otro archivo PHP para procesar los datos del formulario, reemplace que con el nombre de su elección. Entonces, podemos utilizar el súper variable global $ _POST para recoger el valor del campo de entrada:

Ejemplo

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_POST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
Ejecutar ejemplo »

PHP $ _GET

PHP $ _GET también se puede utilizar para recoger datos del formulario después de enviar un formulario HTML con method = "get".

$ _GET también puede recoger datos enviados en la URL.

Supongamos que tenemos una página HTML que contiene un hipervínculo con parámetros:

<html>
<body>

<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>

</body>
</html>

Cuando un usuario hace clic en el enlace "Test $GET" , los parámetros "subject" y "web" se envían a "test_get.php" , y, a continuación, pueden acceder a sus valores en "test_get.php" con $ _GET.

El siguiente ejemplo muestra el código en "test_get.php" :

Ejemplo

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
Ejecutar ejemplo »

Consejo: Usted aprenderá más sobre $ _POST y $ _GET en el formularios PHP capítulo.