Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Utilidad de los includes en PHP


Cómo crear una plantilla en PHP utilizando includes.


11/5/06 - Vamos a comenzar introduciendo a que nos referimos con plantilla. Una plantilla va a ser un portada genérica para nuestra web, que solo contendrá los menus y elemenos indispensables que además mostraremos en todas las páginas por igual.

¿Para qué queremos esto?

Pues esto nos puede ser sumamente util en algunos casos por dos motivos.

1. Teniendo una plantilla conseguimos un codigo más limpio, ya que los marcos y todo lo que engloba al diseño general pueden ir engoblados en un solo archivo, de modo que cualquier modificicación se puede hacer sobre este mismo archivo afectando de manera inmediata al resto de las páginas. Además de ahorrarnos mucho trabajo ;)

2. Conseguimos una web más uniforme, de modo que el usuario no sé perderá entre diferentes secciones llenas de menús que puedan hacer engorrosa la navegabilidad.

Comencemos

Nuestro código va a ser sumamente simple, para empezar crearemos una tabla que no servirá como marco donde deberemos poner nuestros logotipos, menus, publicidad,.. y lo más importante, el contenido.

Lo que diferencia una plantilla de una página normal, es que el contenido lo vamos a generar de otra forma, vamos a ver como queda inicialmente lo que hemos hecho hasta ahora:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Plantilla en PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><div align="right">Logotipo y Titulo</div></td>
</tr>
<tr>
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="">Sección 1 </a></li>
<li><a href="">Sección 2 </a></li>
<li><a href="">Sección 3 </a></li>
</ul></td>
<td colspan="2" valign="top">
Aquí irá el contenido
</td>
</tr>
<tr>
<td colspan="3">Pie de página </td>
</tr>
</table>
</body>
</html>


Ya tenemos lista la primera parte, ahora veamos como vamos a utilizar el PHP para poder introducir contenido dentro de esta plantilla.

Para ello vamos a utilizar la función include de PHP. Esta nos permite introducir una página dentro de otra con tan solo indicarle la ruta del archivo, así utilizaremos una variables (que pasaremos por URL) para indicar a que sección queremos acceder.

Por ejemplo, si utilizamos una variable llamada $sec por ejemplo podriamos acceder a una sección utilizando el link "?sec=seccion1", de modo que a continuación en nuestro código y para evitar fallos innecesarios comprobaremos que el archivo 1.html/ 1.htm/ 1.php/... existe y en tal caso lo incluiremos.

Veamos a contianuación el código:

<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>


En este caso hemos comprobado solo si existe el archivo "1.html" y "1.php".

Pero ¡cuidado con este código!, ya que en el caso de que tengamos ambos archivos en nuestro servidor siempre se mostrará el ".php" ya que es el primero que aparece.

De este modo conseguimos finalmente un fichero con la siguiente forma:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Plantilla en PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><div align="right">Logotipo y Titulo</div></td>
</tr>
<tr>
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="?sec=1">Secci&oacute;n 1 </a></li>
<li><a href="?sec=2">Secci&oacute;n 2 </a></li>
<li><a href="?sec=3">Secci&oacute;n 3 </a></li>
</ul></td>
<td colspan="2" valign="top">
<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
</td>
</tr>
<tr>
<td colspan="3">Pie de p&aacute;gina </td>
</tr>
</table>
</body>
</html>

Aquí podeis ver el ejemplo, en él existen 3 archivos, el index.php que será nuestra plantilla, 1.php que será una de nuestras secciones, 2.html que será otra de nuestras secciones y el link a la sección tres la hemos dejado que apunte a un archivo que aun no hemos creado para comprobar que nuestra funcion file_exists funciona correctamente.

Bueno y solo comentar un pequeño detalle más, debeis tener cuidado con las páginas que incluis dentro de otras, ya que las cabeceras y los tags van dentro de nuestro index.php, si incluis un archivo con cabeceras dentro de otro creareis un mal código html, que posiblemente no tenga mucho efecto en el visitante pero sí será un obstaculo para encontrar posibles errores o simplemente para leer vuestro propio codigo.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 8 comentarios (Añadir)

 Autoría, licencia y acciones sobre este artículo

Informe de Raúl Jiménez Ortega*
Desarrollador web
URL: http://www.quickwebdeluxe.com

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Programación en PHP
Anterior: Herencia en PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 8 comentarios revisados

 Comentario de diego
17/5/06 
no sería mejor hacer lo mismo pero usando xhtml y css?

 Comentario de andrews
17/5/06 
no seria mas seguro hacer un switch?

switch ($sec) {
case "1":
include("1.php");
...
} un transeunte con conocimiento podria escribir en el url algo como http://site/index.php?sec=http://misitio/miscript y ejecutar codigo en nuestro server (se ejecutaria el resultado de http://misitio/miscript.php). esto ultimo lo puedo garantizar por experiencia


 Comentario de Pedro
25/5/06 
He leido con atención el artículo y comprobado el ejemplo.... directamente lo he aplicado en mi servidor pero no me funciona... siempre se mantiene la pagina de presentación..... ¿algún problema en el código para pasar la variable por url ?????? gracias a quien pueda ayudarme

 Comentario de Pedro
25/5/06 
Ya lo he solucionado .... Según la configuración del Apache y del PHP en el servidor puede ser necesario añadir la variable predeterminada extract($HTTP_GET_VARS); en el código php...... así funciona seguro.....

 Comentario de DarkBlood
02/3/07 
asi funciona perfecto:

<?
extract($HTTP_GET_VARS);
switch ($seccion) {
case "crearpersonaje":
include "crear_personaje.php";
case "atributos":
include "atributos.php";
case "clases":
include "clases.php";
}
?>

 Comentario de Cabochench
04/9/07 
Buenas. El artículo es buenísimo, ya que es como se realizan prácticamente la mayoría de las webs que hoy conocemos. Además, en el código fuente quedan ocultadas las acciones PHP, por lo que la persona que quiera averiguar una dirección lo tendrá un poquito dificil si no sabe este tipo de programación.

También quiero añadir que en el localhost me funcionaba a la perfección, pero al subirlo al servidor me daba problemas. Así que gracias a los comentarios, he visto que incluyendo la opción

extract($HTTP_GET_VARS);

en el condicional 'if' de selección de páginas,
funciona sin problemas en el servidor. Así, os pediría que incluyérais esta función en el código que ponéis como ejemplo, y explicárais para qué sirve exactamente esta función.

Gracias!!!!

 Comentario de chalio
14/10/07 
si funcionó gracias
yo lo puse así

<?php
extract($HTTP_GET_VARS);
if(empty($sec))
{

 Comentario de Hector
19/10/07 
hola!! desafortunadamente su el tutorial muestra una forma muy insegura de hacer los includes, cualquier hacker podré meter contenido no deseado a nuestra web... Les dejo la dirección de otro manual donde aparece la forma correcta de hacerlos: http://www.web2.0facil.com/2007/10/19/includes-con-php/

Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Programación en PHP
Categorías
+PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia