Documente Academic
Documente Profesional
Documente Cultură
Curso 2009/10
Universidad Pblica de Navarra
Septiembre 2009
1. Objetivos
En esta prctica vamos a ver unas aplicaciones avanzadas de scripts PHP. Veremos cmo acceder a un servidor
de base de datos MySQL desde scripts PHP. Para ello en la primera prctica compilamos el mdulo de PHP para
Apache con soporte de MySQL.
En caso de dudas sobre cmo emplear la base de datos MySQL la documentacin del mismo incluye un breve
tutorial: http://dev.mysql.com/doc/refman/5.0/es/tutorial.html
Y el tutorial de PHP trae en la seccin LXIII la documentacin sobre las funciones para acceder al servidor
de base de datos: http://www.php.net/manual/ref.mysql.php
phpMyAdmin (http://www.phpmyadmin.net/) es un conjunto de pginas HTML (en realidad scripts PHP) que
permiten gestionar una base de datos MySQL directamente por la web con un interfaz grfico. Si bien generalmente
aprenderemos a realizar la gestin de nuestro servidor de base de datos a travs del cliente mysql una vez que
tengamos los conceptos claros resultar ms cmodo realizaar algunas tareas con un interfaz como este.
2.1. Instalando
Lo primero es descomprimir el tarball al interior del directorio principal desde donde nuestro servidor Web
sirve pginas (DocumentRoot):
$ cp / o p t 3 / l i r / f i c h e r o s / phpMyAdmin 2.11.0 a l l l a n g u a g e s . t a r . gz
/ o p t 3 / l i r / l i r X Y / web /
$ cd / o p t 3 / l i r / l i r X Y / web /
$ t a r x z v f phpMyAdmin 2.11.0 a l l l a n g u a g e s . t a r . gz
2.2. Configurando
Y ahora editamos el fichero de configuracin de phpMyAdmin para que funcione con nuestro servidor. Dicho
fichero es /opt3/lir/lirXY/web/sqladmin/config.inc.php.
1
Laboratorio de Interfaces de Redes
Curso 2009/10
Universidad Pblica de Navarra
Este fichero no existe, pero existe uno de pruebas (config.sample.inc.php) que nos sirve, renombrarlo. Debe-
mos modificar al menos dos lneas. Primero en la lnea que pone:
debemos de cambiar el modo de autentificacin a http, con lo que cada vez que accedamos nos solicita el
usuario y password:
Y cambiamos el modo de acceso para que se acceda mediante TCP en vez del socket UNIX. Para ello cambien:
por
2.3. Probando
Vamos a crear un script de PHP que inserte en una tabla de una base de datos informacin sobre cada acceso
que se realiza a ciertas pginas web.
A continuacin crearemos la tabla que vamos a emplear en este caso. La tabla se llamar logs y contendr al
menos la siguiente informacin:
Un campo de tipo DATE y nombre fecha que guardar el instante de tiempo en que se produjo un acceso a
cada pgina web
Un campo de nombre direccion que guardar la direccin IP en formato dotted-decimal de la mquina que
solicit esa pgina (ejemplo: 130.206.160.215). Nota: no hay ningn tipo de dato MySQL dotted-decimal,
usen el tipo de datos de texto ms adecuado para este tipo de cadenas.
Un campo de nombre path con el path absoluto del documento que se solicit
Ahora creen un script PHP que se conecte a la base de datos e inserte una nueva lnea en esa tabla con la
fecha actual, la direccin IP del que est pidiendo este documento y el URL de este documento. El primer valor
lo sabe introducir el servidor MySQL mediante la funcin NOW() y el segundo y el tercero se pueden obtener de
variables de entorno que ha creado el servidor Web.
Adapten el script anterior para que pueda ser empleado desde cualquier pgina sin ms que entrar en modo
PHP e incluirlo (include). Prueben a crear diferentes documentos que incluyan el script y vean cmo se van
2
Laboratorio de Interfaces de Redes
Curso 2009/10
Universidad Pblica de Navarra
registrando los accesos en la base de datos (por ejemplo empleen las pginas que crearon en la prctica sobre
HTML).
CHECKPOINT 1
Muestren al profesor de prcticas que se introducen las entradas en la tabla a medida que nave-
gan
Creen un nuevo script PHP que acceda a la tabla creada en el apartado anterior y muestre las siguientes
estadsticas:
++++
| Fech a | direccion | path |
++++
| 20031112 | 1 3 0 . 2 0 6 . 1 6 0 . 2 1 5 | / u s r / l o c a l / h t d o c s / p r a c t i c a . h t m l |
| 20031113 | 1 2 7 . 0 . 0 . 1 | / Volumes / U s e r s / d a n i e l / examen . php |
| 20031113 | 1 2 7 . 0 . 0 . 1 | / Volumes / U s e r s / d a n i e l / examen . php |
| 20031114 | 1 2 7 . 0 . 0 . 1 | / Volumes / U s e r s / d a n i e l / e j e r c i c i o s / 1 6 . php |
++++
2 d i r e c c i o n e s d i f e r e n t e s han a c c e d i d o a n u e s t r o s d o c u m e n t o s
URL Accesos
/ Volumes / U s e r s / d a n i e l / examen . php 2
/ Volumes / U s e r s / d a n i e l / e j e r c i c i o s / 1 6 . php 1
/ u s r / l o c a l / h t d o c s / p r a c t i c a . html 1
IP Paginas d i f e r e n t e s accedidas
127.0.0.1 2
130.206.160.215 1
CHECKPOINT 2
Muestren al profesor de prcticas que les funciona el script de mostrar la estadstica de accesos
3
Laboratorio de Interfaces de Redes
Curso 2009/10
Universidad Pblica de Navarra
5. Conclusiones
Hemos visto cmo crear scripts PHP que mantengan el estado de unos a otros, aadiendo as gran funciona-
lidad a pginas web bsicas.