Quisiera comunicar que, dando muchas vueltas por internet, POR FIN he logrado encontrar algo que me ha funcionado... Lo pongo aquí por si a alguien más le pasa lo que a mí.
FUENTE:
[URL="http://www.islavisual.com/articulos/desarrollo_web/solucion-al-problema-de-los-niveles-de-directorios-en-php.php"]http://www.islavisual.com/articulos/desarrollo_web/solucion-al-problema-de-los-niveles-de-directorios-en-php.php[/URL]
He usado la versión de varias líneas del código que viene en esa página.
Código PHP:
<?php
$pagina = $_SERVER['PHP_SELF'];
$contar_slashes = substr_count($pagina, '/')-1;
for($i=1;$i<=$contar_slashes;$i++){
$nivel .= "../";
}
// Luego utilizamos la variable $nivel antepuesta a todas las funciones que requieran especificar un nivel de
// directorio, y que sea absoluto.
?>
La de una sóla línea, no la he usado.
Código PHP:
<?php for($i=1;$i <= substr_count($_SERVER['PHP_SELF'],'/')-1;$i++){$nivel .= "../";} ?>
SUPONGO que funcionaría igual. Pero yo lo veo más claro de la primera manera.
En mi caso particular, he puesto la función en la página de funciones.php y la he incluido llamando y llamado llamado a dicha funció en cada archivo ANTES de llamar a configuracion.php
Para ser más exactos, lo he hecho de la siguiente manera.
En funciones.php:
Código PHP:
function niveles($pagina_actual) { // Lo he modificado para no tener que repetirlo en cada página...
// Así, sabemos el valor obtenido corresponderá a esta página...
$nivel =""; // La he añadido manualmente, porque no le he visto declarada... ¿habrá sido un fallo?
$pagina = $pagina_actual; // Esto es evidente...
$contar_slashes = substr_count($pagina, '/')-2; // El original resta 1. Yo le resto 2 porque no lo tengo en el localhost directamente,
// sino en una carpeta con el nombre del proyecto... Aunque no estoy seguro de si realmente ése es el motivo... Si alguien puede confirmármelo por privado....
// El caso es que me daba error incluso en el propio index principal del proyecto... Y restántode 2, sí me funciona. Deduzco que es por eso.
for($i=1;$i<=$contar_slashes;$i++){
$nivel .= "../";
}
// Luego utilizamos la variable $nivel antepuesta a todas las funciones que requieran especificar un nivel de
// directorio, y que sea absoluto.
return $nivel; // Devolvemos el valor calculado... esto es añadido por mí también.
}
Y en el archivo index.php y en cualquier otro que NO esté en la carpeta REQUIRES:
Código PHP:
include("requires/funciones.php"); // O "../", o "../../", etc... Porque TODAVÍA no está creada
// la variable con la ruta... luego ya se usa dicha variable directamente
$nivel = niveles($_SERVER['PHP_SELF']); // Almacenamos el valor de la ruta de la página actual.
// Le pasamos como parámetro dicha página actual a la función, para que haga el cálculo correcto.
include($nivel."requires.configuracion.php");
Y eso es todo. Me funciona en cualquier sección, subsección y lo que sea. Siempre que lo añada, claro. :D
¡SOLUCIONADO!
PD: ¡Muchísimas gracias a
Per0na por su gran paciencia.