PHP genera automáticamente una serie de variables con diversa información sobre el cliente y el servidor.
$_REQUEST es una matriz asociativa que contiene los datos enviado por los formularios y las cookies guardadas en el ordenador del cliente.
$_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] 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";
?>
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].