Variables predefinidas

PHP genera automáticamente una serie de variables con diversa información sobre el cliente y el servidor.

$_REQUEST

$_REQUEST es una matriz asociativa que contiene los datos enviado por los formularios y las cookies guardadas en el ordenador del cliente.

$_SERVER

$_SERVER es una matriz asociativa que contiene información sobre cabeceras, rutas y ubicaciones de scripts suministrada por el servidor (pero hay que tener en cuenta que no todos los servidores suministran todos los datos).

$_SERVER[PHP_SELF]

$_SERVER[PHP_SELF] contiene la dirección de la página (relativo a la raíz, es decir, sin el nombre del servidor).

URL $_SERVER[PHP_SELF]
http://www.example.com/ejemplo.php /ejemplo.php
http://www.example.com/ejercicios/ejemplo.php /ejercicios/ejemplo.php

El ejemplo siguiente muestra el valor de $_SERVER[PHP_SELF] de una página real:

<?php
print "<p>\$_SERVER[PHP_SELF]: $_SERVER[PHP_SELF]</p>\n";
?>
ERROR (no puede mostrarse el objeto)

Esta variable se puede utilizar en las páginas que enlazan consigo mismas. Por ejemplo, una página puede contener un formulario que envíe los datos a esa misma página. Para ello, el atributo action del formulario debe contener el nombre de la página. En vez de poner el nombre de la página, se puede utilizar $_SERVER[PHP_SELF]. La ventaja es que aunque se cambie el nombre del fichero, el enlace seguirá funcionando.

El ejemplo siguiente muestra cómo se escribiría un enlace que apunta a la misma página que contiene el enlace:

<?php
print "<p><a href=\"$_SERVER[PHP_SELF]\">Enlace a esta misma página</a>\n";
?>

En esta página de ejemplo se puede comprobar este uso de $_SERVER[PHP_SELF].