ariables PHP Global - Superglobals
Varias variables predefinidas en PHP son "superglobales", 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.
Las variables de PHP superglobal son:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
Este capítulo explicará algunas de las superglobales, y el resto se explica en los capítulos posteriores.
PHP $ GLOBALS
$ GLOBALS es una variable súper mundial PHP que se utiliza para acceder a las variables globales desde cualquier parte del script PHP (también desde dentro de funciones o métodos).
Tiendas PHP todas las variables globales en una matriz llamada $ GLOBALS [ índice ]. 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;
?>
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
En el ejemplo anterior, ya que z es una variable presente dentro de la matriz $ GLOBALS, también es accesible desde fuera de la función!
PHP $ _SERVER
$ _SERVER Es una variable súper mundial PHP que contiene información acerca de 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'];
?>
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'];
?>
En la siguiente tabla se muestran los elementos más importantes que pueden ir dentro de $ _SERVER:
| Element/Code | Description |
|---|---|
| $_SERVER['PHP_SELF'] | Returns the filename of the currently executing script |
| $_SERVER['GATEWAY_INTERFACE'] | Returns the version of the Common Gateway Interface (CGI) the server is using |
| $_SERVER['SERVER_ADDR'] | Returns the IP address of the host server |
| $_SERVER['SERVER_NAME'] | Returns the name of the host server (such as www.w3schools.com) |
| $_SERVER['SERVER_SOFTWARE'] | Returns the server identification string (such as Apache/2.2.24) |
| $_SERVER['SERVER_PROTOCOL'] | Returns the name and revision of the information protocol (such as HTTP/1.1) |
| $_SERVER['REQUEST_METHOD'] | Returns the request method used to access the page (such as POST) |
| $_SERVER['REQUEST_TIME'] | Returns the timestamp of the start of the request (such as 1377687496) |
| $_SERVER['QUERY_STRING'] | Returns the query string if the page is accessed via a query string |
| $_SERVER['HTTP_ACCEPT'] | Returns the Accept header from the current request |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1) |
| $_SERVER['HTTP_HOST'] | Returns the Host header from the current request |
| $_SERVER['HTTP_REFERER'] | Returns the complete URL of the current page (not reliable because not all user-agents support it) |
| $_SERVER['HTTPS'] | Is the script queried through a secure HTTP protocol |
| $_SERVER['REMOTE_ADDR'] | Returns the IP address from where the user is viewing the current page |
| $_SERVER['REMOTE_HOST'] | Returns the Host name from where the user is viewing the current page |
| $_SERVER['REMOTE_PORT'] | Returns the port being used on the user's machine to communicate with the web server |
| $_SERVER['SCRIPT_FILENAME'] | Returns the absolute pathname of the currently executing script |
| $_SERVER['SERVER_ADMIN'] | Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3schools.com) |
| $_SERVER['SERVER_PORT'] | Returns the port on the server machine being used by the web server for communication (such as 80) |
| $_SERVER['SERVER_SIGNATURE'] | Returns the server version and virtual host name which are added to server-generated pages |
| $_SERVER['PATH_TRANSLATED'] | Returns the file system based path to the current script |
| $_SERVER['SCRIPT_NAME'] | Returns the path of the current script |
| $_SERVER['SCRIPT_URI'] | Returns the URI of the current page |
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 "Enviar", los datos del formulario se envía al archivo especificado en el atributo action de la etiqueta <form>. 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, que reemplazará con el nombre de archivo 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>
<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>
PHP $ _POST
PHP $ _POST es ampliamente utilizado para recopilar datos de formulario después de presentar un formulario HTML con method = "post". $ _POST También es ampliamente utilizado 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 "Enviar", los datos del formulario se envía al archivo especificado en el atributo action de la etiqueta <form>. 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, que reemplazará con el nombre de archivo 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>
<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>
PHP $ _GET
PHP $ _GET también se puede utilizar para recopilar datos de formulario después de presentar 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=W3schools.com">Test $GET</a>
</body>
</html>
<body>
<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>
</body>
</html>
Cuando un usuario hace clic en el enlace "Test $ GET", los parámetros "sujetos" y "web" se envía a "test_get.php", pudiéndose combinar luego con acces 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>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
No hay comentarios:
Publicar un comentario