Foros del Web » Programando para Internet » PHP »

problema con rutas entre archivos php

Estas en el tema de problema con rutas entre archivos php en el foro de PHP en Foros del Web. Buenas noches. Mi problema es el siguiente: Resulta que cargo la página llamando a un fichero con todas mis constantes en las que guardo mis ...
  #1 (permalink)  
Antiguo 12/12/2011, 17:44
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Pregunta problema con rutas entre archivos php

Buenas noches.
Mi problema es el siguiente:
Resulta que cargo la página llamando a un fichero con todas mis constantes en las que guardo mis rutas relativas.
El problema viene a raíz de que termino de cargar mi página principal (en ese momento ya está todo del lado del cliente). Cuando el cliente por ejemplo hace un click, las tengo que volver a cargar. Si le pongo la ruta absoluta del fichero de constantes perfecto, sin ningún problema. El problema viene cuando intento usarlo por segunda vez (con un require_once), ya que como no tengo ese fichero cargado, no puedo cargarlas y por tanto no sé mi path.
Alguna idea?
  #2 (permalink)  
Antiguo 15/12/2011, 18:44
Avatar de leo_  
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años, 8 meses
Puntos: 11
Sonrisa Respuesta: problema con rutas entre archivos php

Hola suponiendo q tengas un directorio como este:
Código :
Ver original
  1. |-> imagenes
  2. |         |->imagen1.jpg
  3. |         |->imagen2.jpg
  4. |-> css
  5. |    |-> estilo.css
  6. |-> includes
  7. |       |-> constantes.php
  8. |-> libs
  9. |       |-> class.php
  10. |-> misc
  11. |    |-> misc.php
  12. |-> index.php
  13. |-> home.php
Suponiendo que en includes/constantes.php tengas algo como:
Código PHP:
<?php
$imagen1 
"imagenes/imagen1.jpg";
$imagen2 "imagenes/imagen2.jpg";
$css "css/estilo.css";
Entonces si en index.php haces
Código PHP:
require_once('includes/constantes.php');
...
...
echo 
"<img src=\"$imagen1\" alt=\"imagen1\">"
Y la salida de eso seria:
Código HTML:
...
<img src="imagenes/imagen1.jpg" alt="imagen1">
...
Funciona porque el navegador va a interpretar "http://www.ejemplo.com/imagenes/imagen1.jpg"
Lo mismo sería en el caso de home.php. En cambio si en misc.php pones
Código PHP:
require_once('includes/constantes.php'); 
No va a funcionar porque php va a buscar "misc/includes/constantes.php" que no existe. La forma correcta seria:
Código PHP:
require_once('/../includes/constantes.php'); 
Ahora bien cuando quieras usar las variables
Código PHP:
echo "<img src=\"$imagen2\" alt=\"imagen2\">"
La salida seria la misma que en el caso anterior
Código HTML:
<img src="imagenes\imagen2.jpg" alt="imagen2"> 
Pero ahora no va a funcionar porque el navegador va a interpretar "http://www.ejemplo.com/misc/imagenes/imagen2.jpg" que no existe y no va a mostrar nada. Una posible solución para esto es modificar constantes.php asi
Código PHP:
<?php 
...
$pre "http://".$_SERVER['SERVER_NAME'];
$imagen1 "$pre/imagenes/imagen1.jpg";
...
Bueno eso en el caso de las imagenes o las hojas de estilo en el caso de que lo utilices para incluir otros archivos php podrias considerar usar en constantes.php algo como
Código PHP:
$pre $_SERVER['DOCUMENT_ROOT'];
$include "$pre/libs/class.php" 
Y eso es todo espero haber sido de ayuda. Saludos.

Etiquetas: constantes, path
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 20:25.