11.- Bases de datos, includes y formularios (1ª parte)

INTRODUCCIÓN

En el tema 11 vimos como podíamos manipular los datos guardados en una base de datos para mostrarlos en nuestras páginas y os prometí que íbamos a hacer las mismas cosas pero utilizando formularios. En realidad no es necesario, puesto que a lo largo de los temas que hemos ido viendo, habéis visto lo suficiente como para que pudierais hacerlo vosotros mismos; de hecho estuve pensando ponerlo como un ejercicio, pero quizá así sea más fácil.

Así que nos vamos a montar una pequeña aplicación web para nuestros refranes:

1º.- Mostraremos nuestros refranes en una página
2º.- ofreceremos la posibilidad de editar o borrar cada refrán
3º.- Tendremos la posibilidad de añadir más refranes a nuestra base de datos.

Para ello vamos utilizar nuestra base de datos, formularios para editar los refranes e introducir nuevos, e includes que nos permitirán situar pequeños trozos de código en otro archivo y “llamarlo” cuando lo necesitemos, ahorrándonos de esta forma tener que escribir el mismo código varias veces.

Ya hemos visto en los temas anteriores el funcionamiento de las bases de datos y de los formularios con php por eso vamos a empezar con los includes que nos van a ahorrar mucho trabajo y en el tema 13 abordaremos los formularios.

En un principio lo había puesto todo en un solo tema, pero se hacía demasiado largo, por ello lo he dividido en dos.

¿ QUÉ SON LOS INCLUDES Y COMO FUNCIONAN?

Los includes permiten incluir el contenido de otro archivo en el script con el que estamos trabajando. Esto nos permite “modularizar” nuestro código de forma que no tengamos que escribir lo mismo una y otra vez en cada una de nuestras páginas. Digamos que podemos hacer páginas que son como una manta de patchwork.

Lo mejor es verlo con un ejemplo. Veamos nosotros para nuestros refranes vamos a crear:

Una página principal con un título, un menú y un pie de página. Index.php
Una página secundaria desde la que añadir un refrán nuevo: nuevo.php
Otra página secundaria desde la que editar/modificar un refran: modificar.php

Así que tenemos 3 páginas y 3 elementos comunes: el menú, el título y el pie de página. Para evitarnos tener que reescribir el menú, el título y el pie de página en cada uno de nuestros tres archivos, vamos a guardarlos en archivos aparte que luego incluiremos en nuestros archivos

Así tendremos los siguientes archivos:

Index.php
Modificar.php
Nuevo.php

Y

Titulo.inc
Menú.inc
Pie.inc

CREANDO LOS TROZOS QUE VAMOS A INCLUIR

Tenemos que tener en cuenta que lo que hacemos es cortar nuestro código en « trozos » que luego tenemos que unir entre sí y deben formar un código legible. Tendríamos una tabla de disposición más o menos así:

Image

Así que el código de nuestra página completa quedaría más o menos así:

<html>
<head>
<title>El Refranero</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width=”100%”  summary=”tabla de disposicion”>
<tr>
<td colspan=”2″><div align=”center”><img src=/img/refranero.gif” width=”191″ height=”72″ alt=”el Refranero”></div></td>

</tr>
<tr>
<td width=”24%”><h3>Men&uacute; </h3>
<ul>
<li><a href=”refranes.php”>Ver refranes</a></li>
<li><a href=”nuevo.php”>A&ntilde;adir Refran</a></li>
</ul></td>
<td width=”76%”>Contenido contenido contenido</td>
</tr>
<tr>
<td colspan=”2″>Pie de p&aacute;gina copyright y esas cosas</td>
</tr>
</table>
</body>
</html>
De aquí vamos a separar el menú, el título y el pie de página en 3 archivos separados que luego incluiremos en nuestro archivo principal.

1.- titulo.inc

En título.inc vamos a incluir todos aquellos elementos comunes de la parte superior de nuestro archivo. Es decir:

<td colspan="2">

<div align=”center”>
<img src=/img/refranero.gif” width=”191″ height=”72″ alt=”el Refranero”>

</div>
</td>

Y lo guardaremos como titulo.inc

2.- Menú.inc

En este archivo vamos a incluir todos aquellos elementos que forman parte del menú:

<td width="24%"><h3>Men&uacute; </h3>
<ul>
<li><a href="refranes.php">Ver refranes</a></li>
<li><a href="nuevo.php">A&ntilde;adir Refran</a></li>
</ul></td>

3.- Pie.inc

Aquí por supuesto pondremos los elementos que forman parte del pie de página y los guardaremos como pie.inc

<td colspan="2">Pie de p&aacute;gina copyright y esas cosas</td>

COSIENDO LOS TROZOS PARA COMPONER LA COLCHA.

Bien ahora ya tenemos nuestros trozos y estamos listos para componer nuestra index.php para ello, necesitamos el armarzón de la página, e incluir con php el código que hemos separado. Para incluir un archivo dentro de otro utilizamos la sintaxis include(archivo);

Veamos nuestra página:

<html>
<head>
<title>El Refranero</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width=”100%”  summary=”tabla de disposicion”>
<tr>
<td colspan=”2″>
<div align=”center”>
<img src=/img/refranero.gif” width=”191″ height=”72″   alt=”el Refranero”>
</div>
</td>
<tr>
<td width=”24%”><h3>Men&uacute; </h3>
<ul>
<li><a href=”refranes.php”>Ver refranes</a></li>
<li><a href=”nuevo.php”>A&ntilde;adir Refran</a></li>
</ul></td>

<td width=”76%”>Contenido contenido contenido</td>
</tr>
<tr>
<td colspan=”2″>Pie de p&aacute;gina copyright y esas cosas</td>
</tr>
</table>
</body>
</html>

Si quitamos el título e “incluimos” el archivo que acabamos de crear nos quedaría así:

<html>
<head>
<title>El Refranero</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width=”100%”  summary=”tabla de disposicion”>
<tr>
<?php include(‘titulo.inc’); ?>
</tr>
<tr>
<td width=”24%”><h3>Men&uacute; </h3>
<ul>
<li><a href=”refranes.php”>Ver refranes</a></li>
<li><a href=”nuevo.php”>A&ntilde;adir Refran</a></li>
</ul></td>
<td width=”76%”>Contenido contenido contenido</td>
</tr>
<tr>
<td colspan=”2″>Pie de p&aacute;gina copyright y esas cosas</td>
</tr>
</table>
</body>
</html>

Ahora vamos a quitar el menú e incluir nuestro archivo:

<html>
<head>
<title>El Refranero</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
</head>

<body>
<table width=”100%”  summary=”tabla de disposicion”>
<tr>
<?php include(‘titulo.inc’); ?>
</tr>
<tr>
<?php include(‘menu.inc’); ?>

<td width=”76%”>Contenido contenido contenido</td>
</tr>
<tr>
<td colspan=”2″>Pie de p&aacute;gina copyright y esas cosas</td>
</tr>
</table>
</body>
</html>

Y por ultimo quitamos el pie de página e incluimos el nuestro:

<html>
<head>
<title>El Refranero</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width=”100%”  summary=”tabla de disposicion”>
<tr>
<?php include(‘titulo.inc’); ?>
</tr>
<tr>
<?php include(‘menu.inc’); ?>

<td width=”76%”>Contenido contenido contenido</td>
</tr>
<tr>
<?php include(‘pie.inc’); ?>
</tr>
</table>
</body>
</html>

Este archivo que acabamos de crear, lo vamos a guardar como plantilla php, porque las tres páginas que vamos a crear en nuestro proyecto van a tener exactamente la misma estructura.

Bien Ahora que ya tenemos nuestra plantilla vamos a crear la página index de nuestra pequeña aplicación para ver y añadir refranes. Abrimos la plantilla y la guardamos como index.php,

Dónde pone “Contenido contenido contenido”, lo cambiamos por Bienvenido a nuestro refranero popular, podrás ver todos los refranes que hayamos incluido. Además podrás añadir tus propios refranes.

Image

Si subimos a nuestro servidor los archivos: titulo.inc, menú.inc pie.inc e index.php nos encontraremos con algo parecido a la imagen.

EL PATH

Ahora ya tenemos nuestras plantillas preparadas y nos vamos a ahorrar repetir mucho código lo cual nos va a venir muy bien e incluso nos va a permitir aumentar la seguridad de nuestra aplicación.

En los ejemplos que hemos puesto, el archivo que íbamos a incluir estaba siempre situado en la misma carpeta que el script con el que estábamos trabajando, por eso a la hora de configurar el include lo hacíamos así:

<?php include('titulo.inc'); ?>

Sin embargo, lo realmente útil es poner todos nuestros “trozos” en un mismo repositorio de forma que tengamos las cosas ordenadas.

Así que nos creamos la carpeta “includes” y metemos todos nuestro retales ahí. Lo malo es que ahora tenemos que decirle al script dónde están nuestros retales, y para eso necesitamos saber el path.

El path no coincide con la URL, la URL sirve para acceder a un documento desde fuera, desde internet, pero nuestros archivos tienen que saber dónde están físicamente los “retales”.

Recordemos que un servidor de internet es un ordenador y en la mayoría de las cuentas, estaremos compartiendo ese ordenador con otras muchas personas, cada una de las cuales tendrá su “path”.

El path se lo váis a tener que preguntar a vuestro proveedor, aunque normalmente suele venir en las F.A.Q. y en la documentación que te dan al principio.

Para decirle a nuestro script dónde está nuestro directorio. En una cuenta normal tendremos asignado un directorio raíz en el que habrá varias carpetas, por ejemplo:

Mail
ftp
public-html

Los archivos que forman nuestra web estarán en el directorio público. Lo normal es que el path sea:

/home/nombre_de_usuario/public

o algo por el estilo, eso se lo tendréis que preguntar a vuestro proveedor. Una vez dentro de nuestro directorio público el resto del path dependerá de cómo hemos organizado nosotros nuestras carpetas.

Por ejemplo, que en nuestro directorio raíz hemos creado un directorio llamado “includes” y supongamos que nuestro nombre de usuario sea “usuario”. Nuestro path quedaría así:

/home/usuario/public/includes

y nuestro script quedaría

<?php include('/home/usuario/public/includes/titulo.inc'); ?>

¿CÓMO PUEDEN MEJORAR LOS INCLUDES LA SEGURIDAD?

Cómo hemos visto en nuestro directorio raíz en el servidor, tenemos una serie de carpetas y sólo una de ellas es la que contiene nuestros archivos públicos, aquellos a los que se puede acceder desde Internet con un navegador.

Podemos mejorar nuestra seguridad, simplemente colocando aquellas partes de nuestro código más sensibles, fuera de esta carpeta pública. Es decir quitando de la carpeta pública nuestros logins y contraseñas.

Para ello sólo tendríamos que crearnos una carpeta fuera de la carpeta public y poner los datos de conexión ahí:

<?php include('/home/usuario/privado/conectar.inc'); ?>

Nota: No todos los ISP’s te permiten crear carpetas fuera de tu parte pública. Tendrás que consultarlo.

Volver an índice

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s