Sin duda si hay una función de PHP que utilicemos con más interés los menos entendidos del tema es include(), con ella podemos incluir archivos externos en nuestras páginas e, incluso, crear un sistema simple de plantillas donde se incluyan el cabecero, pie y menú en todas las páginas, ahorrándonos tiempo y espacio en disco.
Existen dos funciones mediante las cuales podemos incluir archivos:
include() hace precisamente eso, incluir el archivo que le indiquemos en el lugar que le indiquemos
require() va un paso más allá, si no encuentra el archivo que debe incluir genera un Error Fatal y detiene la carga del script.
Dada su naturaleza me gusta utilizar include para incluir otros archivos php (una barra de navegación, un pie de página) y require para cuando es necesario llamar a alguna función definida en un archivo externo.
include_once() y require_once() funcionan igual que include() y require() salvo que cargan el archivo una única vez al margen de cuantas llamadas hagamos al mismo.
Si sois tan despistados como yo terminaréis viéndole las ventajas a include_once y require_once.
En Limitless Studio se ha publicado un sencillo truco, que no estoy segura de que conozca mucha gente, que nos ayuda a evitar que nuestros archivos sean abiertos al margen del archivo en que se incluyen.
Para que nos entendamos, lo mejor será poner un ejemplo. Imagina que tienes un archivo que se llama funciones.php en el que guardamos las funciones que utilizaremos en nuestro sitio. Algo así
Este archivo sólo nos sirve para reutilizar funciones a lo largo del sitio y generalmente no querremos ponerlo a la vista de cualquiera, no obstante nada impide a ningún usuario accederlo.
La solución es muy simple: Incluimos una simple línea en nuestro archivo funciones.php y otra en el lugar donde vayamos a cargarlo, así:
Ahora simplemente tendremos que definir la variable parentFile antes de la inclusión del archivo
De esta forma sólo se cargará el archivo de funciones en los lugares donde esté autorizado, o lo que es lo mismo donde este definida la variable parentFile. Simple ¿verdad?
Si te ha gustado este post no olvides suscribirte al feed para estar al tanto de las novedades
Feed RSS de los comentarios de este post.
Yo siempre intentaba evitar esto protegiendo los directorios, pero no andaba bien. Lo que hago es colocar en los directorios que no quiero que vean una pagina index.html que redirecciona a una pagina de inicio. Quiza no es la mejor opcion, pero funciona. De todos modos probare esta que dices a ver como va.
Saludos.
Proteger el directorio con un archivo .htaccess o como tu haces con una redirección puede servir, supongo, para los usuarios que no buscan atacar tu sitio. Supongo que para alguien con malas intenciones no sea freno, así que cuantas mas trabas mejor…
Sí, tienes razon, a poner mas trabas entonces.
Saludos.