Foros del Web » Programando para Internet » PHP »

includes desde diferente url

Estas en el tema de includes desde diferente url en el foro de PHP en Foros del Web. Hola, tengo 1 archivo que es llamado desde 2 urls diferentes (front y back end) Mi problema es que tuve que duplicar este archivo ya ...
  #1 (permalink)  
Antiguo 13/09/2011, 07:48
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
includes desde diferente url

Hola, tengo 1 archivo que es llamado desde 2 urls diferentes (front y back end)

Mi problema es que tuve que duplicar este archivo ya que al hacer:

Código PHP:
Ver original
  1. require_once("includes.php");

funciona la llamada desde un lado pero no desde el otro que el include deve ser llamado así

Código PHP:
Ver original
  1. require_once("../../includes.php");

Tampoco me deja usar URLs absolutas, y aunque he leido que se puede modificar el servidor para que si las acepte, también he leido que puede traer algún problema de seguridad.

Entonces por ahora tengo ese archivo duplicado uno para el front end y otro para el back end.

La pregunta en si es si puedo solucionarlo sin usar urls absolutas.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 13/09/2011, 08:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: includes desde diferente url

Si, es posible solucionarlo usando rutas absolutas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/09/2011, 15:27
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: includes desde diferente url

Hola, gracias por tu respuesta.

La pregunta era si es posible resolverlo SIN usar rutas absolutas.

Saludos
  #4 (permalink)  
Antiguo 13/09/2011, 15:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: includes desde diferente url

Primero deberías entender la diferencia entre una ruta absoluta y una relativa, y sobre todo como se deben usar estando en diferentes alturas del sistema de archivos, ¿si entiendes eso?

Supongo que si lo entendieras no tendrías problemas, claro que se puede resolver sin rutas absolutas y es empleando rutas relativas... justo como haces ahora.

Pero hay algo que se te escapa, no se si entiendas lo que practicas, eso es lo que me pregunto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/09/2011, 15:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: includes desde diferente url

Hola.

Si te he entendido bien, donde tienes los ../../ para volver atras, puedes insertar una variable, es decir, en vez de haber ../.., habrá una variable.

El valor de esa variable variará, en función desde donde hagas el include.

No se si te servirá.

Un saludo.
  #6 (permalink)  
Antiguo 13/09/2011, 16:31
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: includes desde diferente url

Creo que más o menos lo entiendo. Lo que si no estoy seguro es de entenderlo a la perfección.

La raíz de la ruta relativa sería al documento o archivo desde donde se está ejecutando la página. Y justamente ahí creo que radica mi problema. Es que ejecuto el archivo desde diferentes paginas.

Desde: misitio.com/index.php y misitio.com/backEnd/backEnd.php

ruta absoluta del includes: misitio.com/includes.php (con varias archivos a incluir)

archivo a incluir: misitio.com/backEnd/classes/persona.php
Código PHP:
Ver original
  1. includes.php tiene una sentencia: require_once("backEnd/classes/persona.php");
  2.  
  3. personas.php tiene una sentencia: require_once("includes.php");

Cuando es llamada a persona.php desde la raíz funciona bien pero cuando es llamado desde backend da error.

Porque la ruta relativa cambia.

La solución seguramente sea la que me dió AitorLopez. Mi pregunta es ahora

Como se desde donde llamo al archivo: para así hacer lo que me comento AitorLopez

Código PHP:
Ver original
  1. if(llame de backEnd)
  2. $ruta=../../;
  3. else
  4. $ruta="";
  5.  
  6. require_once($ruta . "includes.php");

Muchas gracias por su tiempo
  #7 (permalink)  
Antiguo 13/09/2011, 17:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: includes desde diferente url

Sigo sin entender que problema tienes si usas una ruta absoluta.

No te hace daño, a nadie lastimas, inclusive es la mejor solución a tu caso... y siempre será así.

En la mayoría de los caso conviene usar $_SERVER['DOCUMENT_ROOT'] para obtener la raíz del sitio, y a partir de ahí el resto es historia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 13/09/2011, 23:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: includes desde diferente url

Hola.

Independientemente de que, cuando llamas a alguna pagina, siempre tienes que saber desde donde la llamas, creo que ya tienes la solución.

La que te he dado yo puede valer, la que te ha dado pateketrueke tambien vale, e incluso una mezcla de las dos.

Un saludo.
  #9 (permalink)  
Antiguo 15/09/2011, 08:04
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: includes desde diferente url

Esta conversación ha sido de gran ayuda.

He optado por la opción de pateketrueke. De hecho no sabía que podía usar rutas absolutas respecto del servidor. Y mis errores eran tratando de usar la ruta http asi:

Código PHP:
Ver original
  1. require_once("misitio.com/backEnd/classes/persona.php")

La solución:

Código PHP:
Ver original
  1. require_once($_SERVER['DOCUMENT_ROOT'] . "/backEnd/classes/persona.php")

Gracias por desasnarme.

Saludos

Etiquetas: diferente, includes, url
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 08:29.