Sie sind auf Seite 1von 11

Practica 5: Programaci on Web Din amica

Sergio Paracuellos, Ricardo Mu noz

Indice
1. Introducci on 2. Objetivos 3. Enunciado 4. Especicaciones 4.1. Entorno hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Entorno software . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 4 5

5. Tecnologia empleada para la generaci on de p aginas web din amicas 5 6. Escenario de web din amica 7. Proceso de instalaci on y conguraci on 7.1. Instalaci on de Php . . . . . . . . . . . 7.2. Integraci on Php y apache . . . . . . . 7.3. Instalaci on de MySql . . . . . . . . . . 7.3.1. my.cnf . . . . . . . . . . . . . . 7.3.2. Acceso a la base de datos . . . 7.4. Integraci on Php y MySql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 6 6 6 6 6 7 7 7 8 9 9 9 10 10 10 11

8. C odigo 8.1. P agina principal (index.php) . . . . . . . . . . . . . . . . . . 8.2. Acceso mediante login (login.php) . . . . . . . . . . . . . . . 8.3. Implementaci on de Sesiones . . . . . . . . . . . . . . . . . . . 8.4. Test de Sesiones(test.php) . . . . . . . . . . . . . . . . . . . . 8.5. Implementaci on de logout(logout.php) . . . . . . . . . . . . . 8.6. Implementaci on de Cookies . . . . . . . . . . . . . . . . . . . 8.7. P agina de Registro de un Nuevo Usuario (registro.php) . . . 8.8. Registro en base de datos (registrar.php) . . . . . . . . . . . . 8.9. P agina Privada: Zona de descarga de pacticas (practicas.php)

Indice de guras
1. 2. 3. 4. 5. 6. 7. 8. 9. P agina principal . . . . . . . Acceso mediante login . . . . Implementaci on de Sesiones . Test de sesiones . . . . . . . . Logout . . . . . . . . . . . . . Implementaci on de cookies . . Registro de un nuevo usuario Registrar en la base de datos Zona de descarga de pr acticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 9 9 9 10 10 11 11

1 Introducci on

1.

Introducci on

Antes de comenzar con el comentario del desarrollo de las pr acticas queremos introducir en esta secci on como hemos planicado las tareas previas para llevar a cabo este proceso. Hemos montado un servidor de cvs para poder realizar la tarea con control de las distintas versiones y poder trabajar c omodamente cada uno en nuestra casa. Hemos modicado el comportamiento de este cvs para que cada vez que se produzca un cambio nos lo notique enviandonos un mail a una lista de correo que hemos montado para este prop osito. Tambi en queremos comentar la notaci on que vamos a seguir de cara a la documentaci on que nos ocupa. Negrita: escribiremos en negrita los comandos del sistema, as como el seteo de variables y la correspondiente modicaci on de los archivos del sistema. Cursiva: escribiremos en cursiva toda funci on referente a un script, palabras inglesas o similares. Tambi en queremos destacar que aunque las pr acticas hayan sido realizadas en un ordenador portatil, hemos instalado en una partici on separada una debian estable desde cero y no sobrepasando en nig un caso el tama no de un disco ZIP. Como editor hemos utilizado vi, para no estar en ning un tipo de desventaja respecto a los otros alumnos que realizan las practicas en la sala con un disco ZIP. Despu es de estas consideraciones prerealizaci on de las practicas y documentaci on, pasaremos a analizar cada una de las pr acticas propuestas para este bloque.

2.

Objetivos

El objetivo de esta pr actica es muy claro: creaci on de un sitio web con contenidos din amicos. Estos contenidos ser an generados mediante la programaci on en el lado del servidor.

3.

Enunciado

Creaci on de un sitio web con contenidos din amicos. Estos contenidos ser an generados en el servidor bas andose en determinada informaci on, como por ejemplo, datos remitidos por el usuario, el navegador utilizado para realizar la petici on HTTP...

4.
4.1.

Especicaciones
Entorno hardware
Las caracter sticas de la maquina de prueba son: 4

4.2

Entorno software

Procesador Pentium III 1.1 GHz Tarjeta de red Conexion Telef onica ADSL Memoria RAM 512 MB

4.2.

Entorno software

Los componentes software que posee la m aquina de pruebas son: Sistema Operativo: GNU/Linux Distribuci on Debian en su version estable 3.0 (woody) Servidor Web: Apache v1.3 Lenguaje Php v4 SGBD MySql v3.23

5.

Tecnologia empleada para la generaci on de p aginas web din amicas

El lenguaje de programaci on empleado para la creaci on del sitio web ha sido php, un lenguaje de programaci on interpretado en el lado del servidor. Sus car acter sticas m as importantes es que se trata de un lenguaje independiente de la plataforma, r apido y con librerias de funciones bastante amplias y muy buena documentaci on, por lo que se aprendizaje es bastante sencillo y r apido.

6.

Escenario de web din amica

En esta pr actica se ha creido conveniente crearnos un sitio web relacionado con las pr acticas de la asignatura. Se trata de un sistema donde es necesaria la autenticaci on mediante password de un usuario que quiera acceder a una zona donde descargarse las pr acticas realizadas en el curso. Hemos integrado un Sistema Gestor de Bases de Datos (SGBD) para guardar la informaci on necesaria de los usuarios registrados y tener as un control exhaustivo de la aplicaci on web. Este sitio web utiliza mecanismos de seguimiento del estado del cliente tanto con el empleo de sesiones con su correspondiente implementaci on en el sistema de Logout para que el cliente cierre su sesi on cuando lo desee, como el empleo de cookies (sesiones permanentes) donde reconocer a al cliente que ha visitado la p agina con anterioridad. Ademas de todo esto, se ha implementado el env o de correo electronico cuando un usuario es registrado en la p agina, dandole la bienvenida e informandole de su actual nick y password.

7 Proceso de instalaci on y conguraci on

7.
7.1.

Proceso de instalaci on y conguraci on


Instalaci on de Php

Para la instalaci on de php lo hacemos a partir de binarios de la rama estable de debian. El paquete que debemos instalar es php4. Simplemente haremos aptget install php4.

7.2.

Integraci on Php y apache

Los binarios proporcionados por el propio apache y php en la rama estable de Debian hoy por hoy incorporan unos perfectos scripts de integraci on de tal forma que todo lo necesario para que esto funcione correctamente nos lo dan hecho. No obstante podemos mirar el chero de conguraci on de apache y darnos cuenta que cargamos el m odulo de php con el correspondiente LoadModule.

7.3.

Instalaci on de MySql

Para la instalaci on de nuestro SGBD necesitamos 3 paquetes de software: mysql-client mysql-server mysql-common 7.3.1. 7.3.2. my.cnf Acceso a la base de datos

Una vez en este punto, debemos entrar en la base de datos para crear la tabla o tablas necesarias que utilizar a nuestra aplicaci on web. Los pasos a seguir para crear la base de datos y sus tablas son: Ejecutar mysql -u root -p. Ahora nos pedir a la contrase na pues metemos la contrase na correspondiente. Se puede modicar (man mysql). Una vez dentro de mysql debemos crear la base de datos. La llamamos sanri as es que ejecutamos: create database sanri;. Especicaremos a contonuaci on que se quiere emplear la base de datos sanri para crear tablas: use sanri;. Crear la tabla users ejecutando el siguiente comando: create table users (usuario varchar(20), pass varchar(30), mail varchar(20)); Si todo se ha ejecutado sin problemas ya tenemos lista la base de datos para que sea utilizada por nuestra aplicaci on.

7.4

Integraci on Php y MySql

7.4.

Integraci on Php y MySql

Para la integraci on de php y mysql debemos instalar otro paquete de software. En este caso se trata de php4-mysql cuya versi on deber a conincidir con la del paquete php4 y asi nos evitariamos conictos. Lo realizamos de manera an aloga a como hemos ido comentando en otras practicas apt-get install php4mysql. Ya hemos integrado php4 y mysql ya que los scripts del propio paquete que Debian proporciona nos solucionan cualquier problema que nos haya podido ocurrir.

8.
8.1.

C odigo
P agina principal (index.php)

<? session start() ?> <!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 3.2//EN"> <html> <head> </head> <body bgcolor=#AABCDD> <h1>PRACTICA 4:</h1> <ul> 10 <li><a href =primero.html>Primer Enlace: </a>(Accesible desde una maquina del laboratorio)</li> <li><a href =segundo.html>Segundo Enlace: </a>(Accesible desde la subred del laboratorio)</li> <li><a href =tercero.html>Tercer Enlace: </a>(Dominio publico excepto una maquina del laboratorio)</li> <li><a href =cuarto.html>Cuarto Enlace: </a>(Autenticacion)</li> </ul> <br> <h1>PRACTICA 5:</h1> 20 <? if (isset($HTTP COOKIE VARS["cookiep"])) { echo "Hola " .$cookiep. "!!!"; } ?> <p>Entrar!</p> <table> <tr> <form method="post" action=login.php> <td>Nick:</td> 30 <td><input type="text" name="nick" size="20"><br></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" size="20"><br></td> </tr> </table> <input type="radio" name="tipo" value="persistente" checked> Cookies Persistentes<br> <input type="radio" name="tipo" value="session"> Cookies Session<br><br> 40

8.2

Acceso mediante login (login.php)

<input type="submit" value="login" name="validar" size="8"> </form> <? if ((session is registered("cookie"))) { print("<form method=post action=logout.php>"); print("<input type=submit value=logout name=validar size=8>"); print("</form>"); } ?>
50

<p> Si todavia no eres usuario registrado, <a href =registro.php>registrate</a></p> <p><a href =test.php>Test session</a></p> </body> </html>

Figura 1: P agina principal

8.2.
<?

Acceso mediante login (login.php)


if (($nick=="") | | ($password=="")) { print("<p style=textalign:center>Debes rellenar todos los campos.<br><br>"); print("<a href =index.php>Volver al menu principal</a></p>"); } else { $db=mysql connect("localhost","root",""); mysql select db("sanri", $db); $resu t=mysql query("SELECT pass FROM users WHERE usuario=$nick", $db); if ($row=mysql fetch array($resu t)) { 10 $password2=md5($password); if ($row["pass"]==$password) { if ($tipo=="session") { session start(); $cookie=$nick; session register("cookie"); echo "COOKIE SESSION"; } else { setcookie("cookiep", $nick, time()+7200); echo "COOKIE PERSISTENTE"; 20 } include("practicas.php"); } else { print("<p style=textalign:center>Password Incorrecto.<br><br>"); print("<a href =index.php>Volver al menu principal</a></p>"); } mysql free result($resu t); } else { sleep(2); print("<p style=textalign:center>El nick no existe<br><br>"); 30 } }

?>

8.3

Implementaci on de Sesiones

Figura 2: Acceso mediante login

8.3.

Implementaci on de Sesiones

Podemos observar el c odigo de login.php en el cual veremos lo siguiente:


<? if ($tipo=="session") { session start(); $cookie=$nick; session register("cookie"); echo "COOKIE SESSION"; } ?>

Figura 3: Implementaci on de Sesiones

8.4.
<?

Test de Sesiones(test.php)
session start(); if (session is registered("cookie")) { echo "La cookie esta puesta y su valor es: ".$cookie; } else { echo "No esta la cookie"; }

?>

Figura 4: Test de sesiones

8.5.
<?

Implementaci on de logout(logout.php)
session start(); session destroy();

?> <p style=textalign:center>La sesion ha sido destruida.<p> <p style=textalign:cneter><a href ="index.php">Volver</a></p>

Figura 5: Logout

8.6

Implementaci on de Cookies

8.6.

Implementaci on de Cookies

Dentro de login.php podemos ver:


<? setcookie("cookiep", $nick, time()+7200); echo "COOKIE PERSISTENTE"; ?>

Figura 6: Implementaci on de cookies

8.7.

P agina de Registro de un Nuevo Usuario (registro.php)

<!DOCTYPE html public "//W3C//DTD HTML 4.0 //EN"> <html> <head><title> REGISTRO </title></head> <body> <p> Rellena este formulario para registrarte:</p> <table> <tr> <form method="post" action="registrar.php"> <td>Nick: </td> <td><input type="text" name="usuario"><br></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="pass"><br></td> </tr> <tr> <td>Correo electronico</td> <td><input type="email" name="mail"><br></td> </tr> </table> <p><input type="submit" value="Registrar" name="validar"> <input type="reset" value="Borrar"> </form> </body> </html>

10

20

Figura 7: Registro de un nuevo usuario

8.8.

Registro en base de datos (registrar.php)

<body> <? if (($usuario=="") | | ($pass=="") | | ($mai =="")) { print("<p style=textalign:center>Debe rellenar todos los campos. <br><br>"); print("<a href =registrar.php>Volver</a></p>");

10

8.9

P agina Privada: Zona de descarga de pacticas (practicas.php)

} else { $db=mysql connect("localhost", "root", ""); mysql select db("sanri", $db); $resu t=mysql query("SELECT * FROM users WHERE usuario=$usuario", $db); 10 if ($row=mysql fetch array($resu t)) { print("<p style=textalign:center> El nick ya esta en uso, seleccione otro<br><br>"); print("<a href =registrar.php>Volver</a></p>"); } else { $password2=md5($pass); $sentencia="INSERT INTO users (usuario, pass, mail) VALUES ($usuario, $pass, $mai )"; mysql query($sentencia, $db); mail($mai , "registro", "Ha sido registrado"); 20 print("<p style=textalign:center>Ha sido registrado<br><br>"); print("<a href =index.php> Volver </a></p>"); } } ?> </body>

Figura 8: Registrar en la base de datos

8.9.

P agina Privada: Zona de descarga de pacticas (practicas.php)

<body bgcolor=#AADDB3> <h1>PRACTICAS SANRI</h1> <ul> <li>Practica 1: Conguracion FTP<br> <p> Como congurar tu servidor ftp <a href ="descargas/ftp.pdf ">PDF</a></p> </li> <li>Practica 2: Conguracion de Servidor de Correo<br> <p> Como congurar tu servidor de correo <a href ="descargas/correo.pdf ">PDF</a></p> </li> <li>Practica 3: Conguracion Squid<br> 10 <p> Como congurar tu servidor Proxycache <a href ="descargas/squid.pdf ">PDF</a></p> </li> <li>Practica 4: Conguracion Apache<br> <p> Como congurar tu servidor web Apache <a href ="descargas/apache.pdf ">PDF</a></p> </li> <li>Practica 5: Conguracion Programacion web dinamica<br> <p> Como crear una web dinamica con PHP y Mysql<a href ="descargas/php.pdf ">PDF</a></p> </li> </ul> </body> 20

Figura 9: Zona de descarga de pr acticas

11

Das könnte Ihnen auch gefallen