Foros del Web » Programando para Internet » PHP »

Duda con archivos include

Estas en el tema de Duda con archivos include en el foro de PHP en Foros del Web. Hola a todos, Este es mi primer post en forosdelweb y antes que nada quiero darles la enhorabuena a todos los miembros de la comunidad ...
  #1 (permalink)  
Antiguo 02/10/2009, 05:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Duda con archivos include

Hola a todos,

Este es mi primer post en forosdelweb y antes que nada quiero darles la enhorabuena a todos los miembros de la comunidad por el enorme trabajo y apoyo que brindan a toda la gente que, como yo, tiene frecuentes dudas cuando se pone a programar o diseñar algun programa o aplicacion. A mi me resultan de gran ayuda siempre!

Ya para empezar con mis dudas...

Estoy realizando una pagina web social y en la mayoria de los casos utilizo includes de archivos .php para cargar zonas de la pagina que son comunes a varias paginas.

El tema es que estos archivos tienen sentido dentro de un 'marco' (las paginas que realizan el include), pero no tienen sentido por si solas.

Estos archivos los guardo en una carpeta '/include' y los llamo siempre que los necesito.

Pero que pasa si alguien escribe directamente la ruta del archivo include en el navegor??

Si alguien escribe "midominio.com/include/ejemplo.php"

El archivo se carga evidentemente.

Mi pregunta es la siguiente. Hay alguna manera de evitar que se produzca esta carga,
es decir, quiero que un archivo include solo pueda ser leido a traves de otro archivo .php o de un archivo en concreto. Es posible?

Espero no haber sido muy confuso con la explicacion...

Espero sus respuestas.
  #2 (permalink)  
Antiguo 02/10/2009, 06:20
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Duda con archivos include

Podrias proteger tu carpeta includes/ con una regla .htaccess
que solo sea visible si es que es llamado del dominio pero no si es por url directa.
He escrito alguno que otra regla para hacer esto en la sección de servidores, busca por alli.
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 02/10/2009, 07:10
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Duda con archivos include

Idealmente debes incorporar un fichero .htaccess como menciona NUCKLEAR, pero también existe la opción de incluir un fichero index.html o index.php vacío de esa forma no se listarán los ficheros.


Saludos.-
  #4 (permalink)  
Antiguo 02/10/2009, 07:45
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Duda con archivos include

O puedes comprobar si una constante a sido definida, es decir, en cada archivo pones

if( ! defined('VER') ) exit;

lo cual verificaria q si la constante no existe entonces no haga nada y cuando llames al archivo con los includes crear la constante y te dejara leer

Por ejemplo esto dejara ver el mensaje hola porque se define la constante


define('VER', 2);
if( ! defined('VER') ) exit;
echo 'hola'

Pero en este otro NO porque la constante no fue definida

if( ! defined('VER') ) exit;
echo 'hola'
  #5 (permalink)  
Antiguo 02/10/2009, 08:14
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Duda con archivos include

o puedes apoyarte en sessiones para idejntificar el acceso a la carpeta.
Suerte y feliz dia
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #6 (permalink)  
Antiguo 02/10/2009, 08:16
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Duda con archivos include

Si, hay muchas formas solo es un poquito de ingenio y google xD
  #7 (permalink)  
Antiguo 02/10/2009, 23:23
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Duda con archivos include

Cita:
Iniciado por acoevil Ver Mensaje
Si, hay muchas formas solo es un poquito de ingenio y google xD
Google, jajajaja.
La verdad que si excelente maestro si sos disciplinado. mucha suerte y feliz dia
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #8 (permalink)  
Antiguo 04/10/2009, 06:35
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda con archivos include

Gracias a todos por sus respuestas!
Para mi caso creo que la mejor solucion será la que menciona acoevil con el uso de constantes.

Un saludo a todos!
  #9 (permalink)  
Antiguo 04/10/2009, 07:48
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Duda con archivos include

Si la idea es optimizar el codigo me parece que usar una constante y un condicional no ayuda, aunque es validera seria mejor hacerlo con .htaccess.
__________________
Drupal Argentina
  #10 (permalink)  
Antiguo 05/10/2009, 05:04
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda con archivos include

Creo que tienes toda la razon nuclear.

he estado buscando por aqui y encontre este codigo htaccess para proteger la carpeta, (creo que lo subiste tu en el apartado servidores, tal como comentabas)

---------------------------
SetEnvIfNoCase Referer "^urlhome_sin_www" local_ref=1
SetEnvIfNoCase Referer "^urlhome_con_www" local_ref=1
<files>
Order Allow,Deny
Allow from env=local_ref
</files>
---------------------------

ahora cuando escribo la url de la carpeta me echa un Internal Server Error, y pasa lo mismo si escribo la direccion de algun archivo de la carpeta.

En el root de la home tengo un .htaccess que me redirige los errores 401,403,404,500 a una pagina de error personalizada, pero en vez de mostrarme esta pagina me muestra el error tipico 500 (ademas de tirarme el mail del administrador, cosa que por cierto no se como evitar). Puede ser que de otro tipo de error y me redirija al error 500 ??

Por otra parte es extraño que, cuando llamo a un archivo de la carpeta protegida con include desde alguna pagina de la web, en unos me tire el mismo error y en otros salga correctamente la informacion que se debe mostrar.

Estos que dan error son archivos que llamo mediante peticion ajax. Puede ser eso?

He visto tambien que hay posibilidad de proteger las carpetas con htpasswd , pero por lo que yo entiendo, esto sirve para que usuarios con el password puedan acceder a los contenidos de la carpeta, cosa que yo no quiero. Solo quiero que puedan ser leidos por otros archivos de mi servidor.

Se que es un poco lioso, pero la verdad es que estoy un poco perdido.

Sino de momento lo llevare con el tema de las constantes
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 17:23.