Foros del Web » Programando para Internet » PHP »

Problemas con direcciones absolutas: ¿cuándo las inicializo?

Estas en el tema de Problemas con direcciones absolutas: ¿cuándo las inicializo? en el foro de PHP en Foros del Web. Buenas, Quisiera comentaros algo que me ha sucedido siempre, desde que empecé con PHP. Estoy desarrollando dos proyectos con PHP, en un servidor de pago ...
  #1 (permalink)  
Antiguo 27/10/2008, 05:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Problemas con direcciones absolutas: ¿cuándo las inicializo?

Buenas,

Quisiera comentaros algo que me ha sucedido siempre, desde que empecé con PHP.

Estoy desarrollando dos proyectos con PHP, en un servidor de pago (o sea, que no puedo modificar nada de la configuración), con PHP y MySQL.

El problema que siempre he tenido, y que no soy capaz de aclarar es el típico de los enlaces e includes a páginas que no se encuentran en la raíz del sitio.

Por poneros un ejemplo: dispongo de un index.php que incluye al inicio una página de noticias, que se encuentra en /noticias/index.php. El problema es que si incluyo esa página, y esta a su vez, inlcuye una clase u otro archivo fuera de la ruta raíz, no los encuentra. Bien, conozco el problema y sé porque sucede. Pero mi problema es cómo solventarlo.

Sé que hay que usar direcciones absolutas, pero me gustaría poder cargar al principio de todo una variable que siempre me dijera la ráiz de mi sitio, y a partir de ahí, poder incluir lo que necesite, siempre poniendo la ruta absoluta (y no relativas).

Bien, ¿cómo y cuándo debo cargar esta variable? ¿cómo hago que sea visible por TODAS las páginas y archivos php de mi sitio? ¿Sessions? Y claro, cómo sabes cuándo es "al principio"? Porque si entras en cualquier página desde un buscador, por ejemplo, y ano sirve cargar esa variable en el index.php...

Y para rizar el rizo. Si este es mi sitio: www.misitio.es y de ahí cuelga mi página principal, vale, sólo necesito poner la raíz mediante $_SERVER['SERVER_NAME'] y a partir de ahí sacar todas las direcciones... Pero, resulta que un segundo proyecto en elq ue estoy trabajando, y que pruebo en mi sitio, cuelga de www.misitio.es/otrositio. ¿Cómo hago que se pueda tener en cuenta /otrositio/ sin necesidad de cambiar el código y poder seguir utilizando la teoría anterior?

Espero haberme explicado... sé que son muchos conceptos en muy poco espacio, y ya me he extendido mucho...

Gracias!


Jordi
  #2 (permalink)  
Antiguo 27/10/2008, 06:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 54
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: Problemas con direcciones absolutas: ¿cuándo las inicializo?

No entendi muy bien (La hora @.@).. Pero...

archivo: noticias/index.php
Incluyo un archivo desde la raiz.
include('../includes/funciones.php');

Ahi si tienes un sitio
misitio.com con
Noticias/index.php
includes/funciones.php

Al entrar a noticias/index.php te toma la funcion de la carpeta includes de la raiz...
__________________
Kame Kame AH
  #3 (permalink)  
Antiguo 27/10/2008, 08:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problemas con direcciones absolutas: ¿cuándo las inicializo?

Os pido disculpas por mi explicación, pero es que no quería poner código, para no llenar líneas y lineas...

Veamos, el problema es que mi index.php, de la raíz del sitio, tiene en su main includes de las distintas funcionalidades que puede presentar, y una de ellas, la del ejemplo, son noticias. Pues bien, la página que incluye para visualizar las noticias es /noticias/leer.php (así queda más claro). Hasta ahí bien, porque index.php ve perfectamente el directorio /noticias/ e incluye leer.php. Ahora bien, leer.php, tiene a su vez, por ejemplo, un include del modo include('titulares.php');, que está en su mismo directorio /noticias/. Pero como fue incluido por index.php que está en la raíz, titulares.php ya no se encuentra en el mismo directorio, y entonces da un error porque no encuentra el archivo. En este caso debería ser include('/noticias/leer.php');.

Esto me limita a que sólo se puedan incluir archivos desde la raíz, ya que hacen referencia a /noticias/. Si llamásemos a leer.php sin haberlo incluido en index.php esto ya no serviría, ya que estaría incluyendo /noticias/titulare.php que no existe dentro del mismo /noticias/...

El único modo de arreglar esto, que se me ocurre, es usar siempre rutas absolutas, con lo que lo incluya donde lo incluya, si uso www.misitio.es/noticias/leer.php siempre me funcionará...

Pues bien, lo que necesito saber es como tener en una variable siempre el valor www.misitio.es visible en todas las páginas de mi servidor, sin tener que ponerla a mano, sino solo leerla. De este modo, usando la directiva $_SERVER['SERVER_NAME'] lo tendría... pero si la página web está ubicada (la raíz) en www.misitio.es/otrodirectorio ya no me sirve y tendría que ponerlo a mano, siempre (otrodirectorio podría ser variable dependiendo de en qué servidor alojo la raíz de mi web)...

¿Cómo consigo que todas las páginas de mi web tengan una variable que indique esta ruta sin tener que ponerla a mano? Probé con define, pero claro, sólo sirve en el ámbito de la página en ejecución...

Espero haberme explicado ahora mejor, y disculpas por ser tan retorcido...

Saludos,

Jordi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.