Foros del Web » Programando para Internet » PHP »

require/include y carpetas

Estas en el tema de require/include y carpetas en el foro de PHP en Foros del Web. Buenas, tengo el siguiente problema tengo en el raiz los siguientes archivos head.php script.js login.php index.php /css/style.css se entiende, tengo los css en una carpeta ...
  #1 (permalink)  
Antiguo 18/10/2010, 11:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta require/include y carpetas

Buenas, tengo el siguiente problema

tengo en el raiz los siguientes archivos

head.php
script.js
login.php
index.php
/css/style.css

se entiende, tengo los css en una carpeta ya que dentro de la carpeta css tengo las imágenes y etc..

mi problema es el siguiente.

el sistema de login que he creado funciona perfecto para algún index.php dentro de la carpeta raiz que he creado ya que contiene como require o inclide el head.php y login.php.

Bueno mi proyecto se ha ido complicando y he decido crear carpetas para cada uno de las funciones que se puede hacer en la pagina, como crear usuarios y llenar formularios quedando así, pero para que la pagina.

head.php
script.js
login.php
index.php
/css/style.css
/adminuser/index.php
/formularios/index.php


Por que hice esto?, bueno porque en verdad adminuser utiliza ya como 10 archivos php distintos, lo mismo para formularios por lo cual comenzaba a ser muy desordenado todo y muchos archivos son parecidos pero uno afectaba a adminsuer y otros a formulario, entones para ordenarme decidí separarlos en carpeta, cosa que si necesitase una función nueva pues copiaba una carpeta y realizaba las modificaciones que necesitase, El ejemplo es solo ilustrativo.

Bueno mi problema es el siguiente, el sistema de login es igual para todas las funciones o subcarpetas que tenga mi pagina, por lo cual lo llamo con un "require o include", Lo mismo para el Head que contiene el estilo css mas los javascript que tiene mi pagina.

mi problema es que al llamar al head desde un archivo en las carpetas adminuser o formularios pues deja de cuncionar porque llama a una carpeta css dentro de adminuser o formulario.

Como hago para que el include o requiere mantenga los direccionamientos correctos, sea de donde sea llamado??

Por si no me entienden lo resumiré. Al hacer require('../head.php'); en /adminuser/index.php este queda llamando los css y javascrit en una carpeta /adminuser/css/style.php ya que el head contiene la lista de css y js de forma escrita, si le pongo ../ a cada js y css (porque se que sera llamado de una carpeta superior) me deja de funcionar para la carpeta raiz y bueno la idea es que de donde sea llamado siempre cargue el direccionamiento correcto. Como soluciono ese problema??, existe alguna funcion en php?? o se hace por medio de algun estándar de carpetas??, supongo que no soy el unico con este problema como lo solucionan??

Gracias

Saludos.
  #2 (permalink)  
Antiguo 18/10/2010, 12:07
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: require/include y carpetas

Puedes hacer una función que te de el path absoluto al root del proyecto así,
para un archivo que se ejecuta en http://localhost/pepe/doc/head.php
este script:

Código PHP:
<?php

$path 
$_SERVER['PHP_SELF'];
$temp explode("/"$path);

$path_absoluto "";
for(
$i=1;$i<count($temp);$i++)
$path_absoluto .= "../";

$path_absoluto .= "head.php"

echo 
"<h3>$path_absoluto</h3>";

?>
te devuelve:

../../../head.php
Así puedes hacer un include sabiendo siempre la ruta que debes recorrer.
No sé si te entendí, creo que lo que intentas es incluír archivos php que están en una ruta absoluta. Prueba esto a ver si te sirve, saludos
  #3 (permalink)  
Antiguo 18/10/2010, 12:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: require/include y carpetas

cuando hablamos de archivos externos, osea Javascript y CSS no se trata entonces de PHP, la solución no viene de PHP...

para los estilos y scripts no hay nada mejor que usar rutas absolutas:
Código HTML:
<link rel="stylesheet" type="text/css" href="/css/style.css"/>
<script type="text/javascript" src="/js/jquery.min.js"></script> 
la barra inicial de /css es el equivalente a la dirección raíz de tu servidor, osea:
Código HTML:
<link rel="stylesheet" type="text/css" href="http://localhost/css/style.css"/> 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 18/10/2010, 13:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: require/include y carpetas

Me gusto mas la función de repara2, ya que asi mantengo oculta las carpetas que anteceden a la pagina y su dominio original.

Voy a probar si me funciona.
  #5 (permalink)  
Antiguo 03/11/2010, 09:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: require/include y carpetas

Hola, según entiendo la página login.php es común, si incluyes una variable

$site="la raiz del sitio"

y lo usas en los includes/requires:

include($site."/carp1/subcarp");

podrás mantener las referencias.

Un saludo,

Etiquetas: carpetas, include, require
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 15:57.