Foros del Web » Programando para Internet » PHP »

Problema con ruta a archivos en include y require

Estas en el tema de Problema con ruta a archivos en include y require en el foro de PHP en Foros del Web. Como están? Tengo una duda referente a las rutas para los archivos. Para poner en contexto estoy utilizando XAMPP. Bien estoy trabajando con varios archivos ...
  #1 (permalink)  
Antiguo 03/03/2014, 16:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 1
Problema con ruta a archivos en include y require

Como están?

Tengo una duda referente a las rutas para los archivos.

Para poner en contexto estoy utilizando XAMPP.

Bien estoy trabajando con varios archivos los cuales se encuentran en diferentes carpetas.

Unos en el root del sitio, otros en Administración, otros en clases y así..

estaba haciendo las rutas de la siguiente manera por ejemplo

"../config.php" (este archivo está en el root)
"../clases/tienda.php" (este archivo obviamente en una carpeta clases
Código PHP:
require '../config.php';
// y cuando quiero llamar a algún archivo dentro de una carpeta utilizo
require '../clases/tienda.php' 
Bien el problema es que no esta asignado como una ruta absoluta.

Por ejemplo si llamo a esos archivos desde los archivos del root, como por ejemplo login.php, funciona perfectamente. pero cuando salgo del root y los utilizo desde los archivos dentro de la carpeta Administración por ejemplo administración/artículos.php

Me da error no encuentra el archivo config.php

Me podrían decir como generar bien la ruta absoluta para que siempre inicie a buscar desde el root?

Muchas gracias!
  #2 (permalink)  
Antiguo 03/03/2014, 17:21
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con ruta a archivos en include y require

Prueba a crear un archivo header.php, lo pones donde quieras, pon ahí las referencias bien y haces el include de ese header en los archivos que quieras.
No sé si te funcionará, llevo un tiempo sin tocar php y no recuerdo si eso valía pero creo que si.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #3 (permalink)  
Antiguo 03/03/2014, 18:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con ruta a archivos en include y require

Pero es que no todos los archivos tienen los mismos include y require.

Si hago eso voy a estar llamando siempre a los mismos archivos o no??
  #4 (permalink)  
Antiguo 04/03/2014, 06:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

Me pasaba lo mismo y lo solucione utilizando la variable superglobal $_SERVER['DOCUMENT_ROOT']

Un ejemplo
Código PHP:
require $_SERVER['DOCUMENT_ROOT'].'/config.php'
Saludos!
  #5 (permalink)  
Antiguo 04/03/2014, 08:10
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con ruta a archivos en include y require

Esa es una solución.

Pero si no todos los archivos tiene los mismos include/require no veo dónde está el problema de escribir tú mismo la ruta ya que de todas formas lo vas a tener que escribir.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #6 (permalink)  
Antiguo 04/03/2014, 08:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

Cita:
Iniciado por zalito12 Ver Mensaje
Esa es una solución.

Pero si no todos los archivos tiene los mismos include/require no veo dónde está el problema de escribir tú mismo la ruta ya que de todas formas lo vas a tener que escribir.
Por lo menos en mi caso el problema reside en que si tuviera que escribir la ruta completa mientras desarrollo en mi servidor local XAMPP tengo que poner "D:/XAMPP/htdocs/proyecto/nombrearchivo"

Entonces cuando lo quiera subir al hosting, esa ruta no me va a servir. teniendo el Server Document Root, puedo moverlo donde quiera que va a funcionar.

Ahora si Daitron no necesita moverlo a otro sitio con una ruta diferente tal vez escribirlo sería una opción.

Saludos!
  #7 (permalink)  
Antiguo 04/03/2014, 09:43
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con ruta a archivos en include y require

No, la ruta completa no, de hecho no está permitido usar rutas completas con esas funciones, solo relativas para evitar incluir archivos de otro host.
Pero puedes llegar al root de tu host poniendo '/', creo que si pones: include '/dir/fich.php'; esa ruta es tomada desde el root, no estoy seguro pero se que hay una forma, de cualquier modo ahí tienes la otra solución.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #8 (permalink)  
Antiguo 04/03/2014, 09:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

Cita:
Iniciado por zalito12 Ver Mensaje
No, la ruta completa no, de hecho no está permitido usar rutas completas con esas funciones, solo relativas para evitar incluir archivos de otro host.
Pero puedes llegar al root de tu host poniendo '/', creo que si pones: include '/dir/fich.php'; esa ruta es tomada desde el root, no estoy seguro pero se que hay una forma, de cualquier modo ahí tienes la otra solución.
Exactamente como tu lo dices hay una forma de llegar al root directamente, pero yo no lo podía lograr no se si será un problema de XAMPP o que, pero no encontré la forma

probé con "/" con "./" y con "../"

De hecho esa es la forma que yo sigo buscando lograr pero por ahora estoy en cero...

Estoy esperando a ver si alguien le contesta a Daitron que parece que es lo mismo que yo necesito.
  #9 (permalink)  
Antiguo 04/03/2014, 09:58
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con ruta a archivos en include y require

Yo juraría que era con "/" pero no sé. Ten en cuenta que si usas xampp el root es htdocs, si tienes una subcarpeta para un proyecto el root seguirá siendo htdocs, por eso conviene hacerse un archivo de confi donde almacenar el root en una variable, por ejemplo: $root = "/" o $root = "/miweb/" y despúes la pones dónde quieras.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #10 (permalink)  
Antiguo 04/03/2014, 10:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

Si yo también lo juraría pero no me lo toma en xampp, también hace muchos años que no hacía nada, y por lo que recordaba, antes cuando hacía algo directamente de un hosting, estaba seguro que utilizaba "/" o "../" no me acuerdo cual exactamente pero era una de esas 2, ahora no me funciona ninguna de ambas.
  #11 (permalink)  
Antiguo 04/03/2014, 10:27
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problema con ruta a archivos en include y require

Para usar rutas absolutas se pone la barra lo primero /scripts/index.php la dirección la coge desde el root del servidor, si se pone scripts/index.php busca la carpeta scripts en la misma carpeta del archivo.

Se puede crear la variable que han comentado si quieres tener tu web en una carpeta dentro del root, para evitarte tener que renombrar todas las direcciones una vez la muevas de sitio.

Un saludo
  #12 (permalink)  
Antiguo 04/03/2014, 10:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

pues en lo personal si cambio esto
Código PHP:
require $_SERVER['DOCUMENT_ROOT'].'/proyecto1/config.php'
por esto
Código PHP:
require '/proyecto1/config.php'
No me funciona más y me muestra este error
Cita:
Warning: require(/proyecto1/config.php): failed to open stream: No such file or directory in D:\xampp\htdocs\proyecto1\clases\OpMySQL.php on line 2

Fatal error: require(): Failed opening required '/proyecto1/config.php' (include_path='.;D:\xampp\php\PEAR') in D:\xampp\htdocs\proyecto1\clases\OpMySQL.php on line 2
  #13 (permalink)  
Antiguo 04/03/2014, 10:46
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problema con ruta a archivos en include y require

document_root en windows devuelve la ruta completa desde la letra del disco duro, pero evidentemente se pueden hacer requires con direcciones absolutas sin necesidad de $_SERVER['DOCUMENT_ROOT'], si falla el require es porque la ruta no es correcta o el root no es el que tu crees.

Un saludo
  #14 (permalink)  
Antiguo 04/03/2014, 17:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con ruta a archivos en include y require

Sigo investigando, el problema solo reside en los include y los require cuando los utilizo directo desde código PHP.

Resulta que los links HTML funcionan perfecto con la ruta absoluta "/proyecto/pagina"

Pero si en el código PHP intrudozco directamente esa misma ruta me da error el sitio como el que mostré en mi post anterior.

Etiquetas: include, require, ruta
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 09:16.