miércoles, 25 de julio de 2007

Inclusiones dinámicas con PHP

He aquí otro modo de realizar inclusiones gracias a PHP cuando tenemos un sitio con mucho contenido o muchas secciones, pues utilizar en estos casos el método que ya hemos explicado puede llegar a ser contraproducente.

Es posible que ya sepamos cómo hacer la tarea de construcción y administración de sitios más fácil gracias al tutorial “Inclusiones con PHP”, que además nos permite obtener URLs del tipo index.php?algo.

Pero cuando tenemos un sitio con mucho contenido o muchas secciones, quizás nos venga mejor el método que explicamos ahora, con el que cada sección del sitio está en un archivo diferente, y todos esos archivos de contenido se encuentran en una carpeta.

Si no estamos familiarizados con cómo incluir archivos en una página utilizando la función PHP include(), es bueno haber leído el tutorial “Inclusiones con PHP” para hacerse una idea.

Comencemos:
Primero, creamos en el directorio o carpeta donde guardamos nuestro sitio un nuevo directorio y lo llamamos “pags” (de “páginas”), o cualquier otro nombre que nos permita identificar dónde están los contenidos, pero eso sí: sin tildes o caracteres especiales. En este nuevo directorio pondremos todos los archivos que queremos incluir. Eso sí, los archivos deben tener la extensión .php.

Luego, decidiremos cuál de nuestros archivos de contenido será el que aparezca por defecto cuando los visitantes accedan a nuestro sitio. Podemos identificarlo con un nombre como “principal.php”, “hola.php” o algo por el estilo.
Conviene advertir que en estos archivos de contenido tendremos el código HTML de lo que se quiere incluir. Las partes que se repiten en todas las páginas (la cabecera y el pie) deben estar en archivos separados y también los incluiremos al principio y al final de cualquier página utilizando la función PHP include.

Ahora construiremos el archivo index.php al que apuntarán los navegadores cada vez que los visitantes accedan a nuestro sitio. Ese archivo debe hallarse en el directorio general: el inmediatamente superior a la carpeta “pags”. En este archivo index.php se encontrará todo el código PHP que necesitamos. No tenemos más que copiar y pegar el código siguiente:


index.php

<?php $pag = basename($_SERVER['QUERY_STRING']);
include('cabecera.inc');

if(!$pag){
include('pags/principal.php');
} else {
if(file_exists('pags/'.$pag.'.php')){
include('pags/'.$pag.'.php');
} else {
echo('¡Esa página no existe!');
}
}
include('pie.inc');
?>


Si nuestros archivos de cabecera, pie y bienvenida tienen nombres diferentes a “cabecera.inc” o “pie.inc”, debemos cambiarlos en el código.

Para finalizar, si no hemos realizado estas tareas desde el servidor, subimos la carpeta “pags” y el archivo index.php, junto con los demás archivos necesarios para el sitio y ya está.
A la hora de abrir cada una de las secciones, que en principio se corresponden con los archivos que queremos incluir, lo haremos del modo siguiente.

Por ejemplo, para abrir el archivo “perlas.php” que se encuentra en pags/perlas.php, el enlace será “index.php?perlas”; se nos mostrará entonces la página completa en la que el contenido hablará sobre perlas. En lugar de poner la nota “¡Esa página no existe!”, podemos incluir un archivo de error 404 personalizado para aquellos casos en los que un visitante intente acceder a archivos que no están en nuestro servidor.

Este código es seguro (al menos aún no se han tenido noticias de que no lo sea): no se podrá incluir nada que no que no esté en el directorio “pags” o que no sean los archivos de cabecera o pie.

0 comentarios: