Pues eso... Tengo WampServer 2.2 instalado en Windows 7. En el directorio www tengo varias carpetas, cada cual con su proyecto. Esto se suele traducir, ya en localhost, como: localhost/proyecto1/, localhost/proyecto2/, etc...
Pues bien, quisiera que "localhost/proyecto1" sea considerada la raíz de ese proyecto. Con $_SERVER['DOCUMENT_ROOT'] me dice que la raíz es: "C:/wamp/www/". Y con $_SERVER['PHP_SELF'] me dice que es: "/proyecto1/index.php". No hace referencia a localhost ni a wamp...
¿Cómo puedo hacer para crear una constante, una única vez, que sirva para que la raíz del sitio sea "localhost/proyecto1/" (sin el index.php incluido en su definición)
Es para los includes. Tengo archivos en include que acceden con facilidad desde la carpeta raíz localhost/proyecto1/, ya sea el index u otros.
Pero otros están en otras subcarpetas y algunos de los includes tendría que reconfigurarlos y tendría que hacer varias copias de alguno de ello, porque incluyen rutas relativas.
Y quiero que incluyan rutas absolutas, para no tener que hacer múltiples copias, casi idénticas, para algunas de esas subsecciones... Es decir, quiero que para incluir cada archivo del include, se le llame desde la sección que se le llame, se vaya a la raíz web de mi proyecto (no el de "c:...", sino del localhost, porque de lo contrario no me muestra nada), se meta en la carpeta includes (en mi caso, requires) y coja el archivo que se requiere.
Para explicarlo más claro, lo tengo así: en requires está configuración.php que es el que llama al resto de cosas a incluir (funciones, configuración de conexión de base de datos, head, cabecera, navegación, sección, pie). El index y demás secciones y subsecciones, llaman a este archivo desde donde estén. Lo único que tiene dicho index o cualquier otra sección es:
Código PHP:
<?php
// Inicio de sesión para poder pasarnos variables de sesión entre páginas.
session_start();
// Variables de la página de inicio. De momento sólo es una:
$seccion = "inicio"; // Título de la sección en la que se encuentra actualmente el usuario. En minúsculas. Así, configuracion.php llamará al archivo que contendrá la parte central de ese archivo, que será la que corresponda con esa sección concreta. En este caso, $seccion.".php", equivalente a "inicio.php".
// Elementos requeridos.
require ("requires/configuracion.php"); // Eso si está en la raíz. Si está en otra carpeta, sería "../requires/configuracion.php"
?>
Código PHP:
$raiz = "localhost/proyecto1/";
Código PHP:
require($raiz."requires/configuracion.php");
Cita:
y...Warning: require(localhost/proyecto1/requires/configuracion.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\proyecto1\index.php on line
Cita:
Fatal error: require() [function.require]: Failed opening required 'localhost/proyecto1/requires/configuracion.php' (include_path='.;C:\php\pear') in C:\wamp\www\proyecto1\index.php on line