SlideShare una empresa de Scribd logo
Introducción al desarrollo web con PHP 5
Ejercicios
Universidad de Córdoba
martes, 2 de noviembre de 2010
Índice de contenidos
Introducción........................................................................................................................................ 3
Relación de ejercicios......................................................................................................................... 4
Ejercicio 01.......................................................................................................................................4
Ejercicio 02...................................................................................................................................... 4
Ejercicio 03...................................................................................................................................... 4
Ejercicio 04...................................................................................................................................... 5
Desarrollo de un blog......................................................................................................................... 7
Datos necesarios.............................................................................................................................7
Script de creación de la base de datos..........................................................................................8
Requisitos del sistema.................................................................................................................. 10
Listado de artículos...................................................................................................................10
Detalle de un artículo................................................................................................................ 10
Nuevo artículo............................................................................................................................11
Editar artículo............................................................................................................................12
Gadget de autenticación........................................................................................................... 13
Gadget de publicaciones anteriores..........................................................................................13
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Introducción
En este documento, el alumno encontrará la relación de ejercicios que ha de codifcar para
obtener una mejor puntuación a la fnalización del curso.
Adicionalmente, también se especifca el enunciado y material necesario para el desarrollo
del trabajo optativo, “Desarrollo de un blog”.
El material elaborado habrá que entregarlo en un documento con
formato PDF a la dirección de correo cristina.quintana@fai.es antes
del domingo 28 de noviembre de 2010.
Como se especifca en el programa, las dos últimas clases presenciales del curso se
dedicarán a las dudas surgidas en la resolución de los ejercicios detallados en este
documento.
http://www.fai.es Página 3 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Relación de ejercicios
A continuación, se detallan los enunciados de los ejercicios a desarrollar.
Ejercicio 01
Dado un número en formato numérico comprendido entre 1 y 99, imprimirlo en
formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 02
Dado un día, mes y año, imprimir el día de la semana al que pertenece.
El mes se introducirá en formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 03
Construir una clase que contenga la lógica necesaria para dibujar un calendario con el
que se muestra en la siguiente imagen.
El código a utilizar para renderizar el calendario es:
<?php
// Dibuja el calendario del mes actual
$calendar01 = new MyCalendar();
$calendar01->render();
// Dibuja el calendario del mes de agosto
$calendar02 = new MyCalendar( "agosto", 2010 );
$calendar02->render();
http://www.fai.es Página 4 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Ejercicio 04
Construir una aplicación con dos pantallas:
1. Listado de asignaturas
Cada asignatura será un enlace al listado de alumnos matriculados en ésta.
2. Listado de alumnos de una asignaturas
Mostrar el nombre de la asignatura y los datos de sus alumnos matriculados.
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php
Usuario curso
Contraseña curso_2010
Si se desea utilizar la base de datos en entorno local, el script para la creación es el
siguiente:
--
-- Base de datos: `curso_php`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno`
--
DROP TABLE IF EXISTS `alumno`;
CREATE TABLE IF NOT EXISTS `alumno` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno_asignatura`
--
DROP TABLE IF EXISTS `alumno_asignatura`;
http://www.fai.es Página 5 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
CREATE TABLE IF NOT EXISTS `alumno_asignatura` (
`alumno_id` bigint(20) NOT NULL DEFAULT '0',
`asignatura_id` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`alumno_id`,`asignatura_id`),
KEY `alumno_asignatura_asignatura_id_asignatura_id` (`asignatura_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `asignatura`
--
DROP TABLE IF EXISTS `asignatura`;
CREATE TABLE IF NOT EXISTS `asignatura` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Filtros para la tabla `alumno_asignatura`
--
ALTER TABLE `alumno_asignatura`
ADD CONSTRAINT `alumno_asignatura_alumno_id_alumno_id` FOREIGN KEY
(`alumno_id`) REFERENCES `alumno` (`id`),
ADD CONSTRAINT `alumno_asignatura_asignatura_id_asignatura_id` FOREIGN
KEY (`asignatura_id`) REFERENCES `asignatura` (`id`);
http://www.fai.es Página 6 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Desarrollo de un blog
A continuación, se detallan los datos necesarios para el desarrollo del blog y las
características que ha de cumplir en su ejecución.
Datos necesarios
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php_blog
Usuario curso
Contraseña curso_2010
La base de datos consta de la siguiente estructura:
• Tabla user
Contenido de los datos del usuario con privilegios.
Columnas de la tabla:
▪ name
Nombre del usuario.
▪ last_name
Apellidos del usuario.
▪ username
Nombre con el que el usuario accede a la aplicación.
Este dato es único para cada usuario.
▪ password
Clave con la que el usuario accede a la aplicación.
• Tabla article
Contenido de los artículos introducidos por usuarios privilegiados.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ title
http://www.fai.es Página 7 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Título de la publicación.
▪ value
Contenido de la publicación.
▪ user_id
Identifcador del usuario que ha publicado el nuevo contenido.
• Tabla comment
Contenido de los comentarios introducidos tanto por usuarios privilegiados
como por usuarios anónimos.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ value
Contenido de la publicación.
▪ article_id
Identifcador del artículo al que hace referencia.
Script de creación de la base de datos
Se adjunta el script de creación de la base de datos a utilizar en este ejercicio, para
aquellos que deseen realizar el ejercicio en su ordenador personal.
--
-- Base de datos: `curso_php_blog`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `article`
--
DROP TABLE IF EXISTS `article`;
CREATE TABLE IF NOT EXISTS `article` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id_idx` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
http://www.fai.es Página 8 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `comment`
--
DROP TABLE IF EXISTS `comment`;
CREATE TABLE IF NOT EXISTS `comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`article_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `article_id_idx` (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE IF NOT EXISTS `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Filtros para la tabla `article`
--
ALTER TABLE `article`
ADD CONSTRAINT `article_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES
`user` (`id`);
--
-- Filtros para la tabla `comment`
--
ALTER TABLE `comment`
ADD CONSTRAINT `comment_article_id_article_id` FOREIGN KEY (`article_id`)
REFERENCES `article` (`id`);
http://www.fai.es Página 9 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Requisitos del sistema
El problema a resolver se compone de cuatro pantallas, dos públicas y otras dos
protegidas por autenticación de usuario.
Listado de artículos
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
el listado de artículos almacenados en el sistema en orden descendente de la
fecha de creación.
De cada artículo se muestra el título, seguido de la fecha de creación.
Este título será un enlace a la pantalla de detalle de dicho artículo.
Además de ésto, esta pantalla posee una columna a la derecha dónde se
muestran los gadget de autenticación y publicaciones anteriores, los cuáles se
explican más adelante en este documento.
Detalle de un artículo
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
la información del artículo que se ha seleccionado en la pantalla de listado, a
través de la cuál se ha accedido.
Se detalla el título, descripción y fecha de creación del artículo.
Acompañando a estos datos, se debe implementar un formulario para añadir
comentarios asociados a dicho artículo.
Además de lo anterior, se ha de visualizar el listado de comentarios que
usuarios de la aplicación han añadido a través del formulario anterior. Estos
comentarios se han de mostrar en orden descendente según la fecha en la
que han sido introducidos.
Replicando la funcionalidad de la pantalla de listado, también posee una
http://www.fai.es Página 10 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
columna a la derecha dónde se muestran los gadget de autenticación y
publicaciones anteriores, los cuáles se explican más adelante en este
documento.
Nuevo artículo
Esta pantalla es de acceso restringido, sólo se podrá acceder a esta pantalla
tras autenticarse mediante el gadget de la columna de la derecha de las
pantallas de listado y detalle de artículos.
Esta pantalla muestra un formulario de creación dónde aparecerán los
campos título y artículo o descripción. Al guardar este formulario se tomará la
fecha actual para el campo create_at de la base de datos.
Debajo de este formulario, han de aparecer el listado de artículos publicados
por el usuario autenticado en orden descendente por fecha de creación.
Cada uno de estos artículos de ese listado ha de mostrar el título del artículo
http://www.fai.es Página 11 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
seguido de la fecha de creación.
El título ha de ser un enlace que redirija a la pantalla de edición de dicho
artículo, la cuál se describe a continuación.
Editar artículo
Esta pantalla es de acceso restringido, es decir, sólo se puede acceder a esta
pantalla, estando autenticado en el sistema.
La pantalla es idéntica a la pantalla del formulario de nuevo artículo, salvo
porque el formulario aparece completado con los datos del artículo que se
está editando.
http://www.fai.es Página 12 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Gadget de autenticación
Situado en las parte o columna de la derecha de las pantallas de listado de
artículos y detalle de la parte pública del blog, hay que defnir una zona dónde
los usuarios con privilegios puedan acceder al área privada.
Esta zona vendrá defnida por dos cajas de texto en las que especifcar el
nombre de usuario y la contraseña.
Al pulsar el botón registrar, se han de comprobar los datos y en caso de ser
correctos redirigir al formulario de nuevo artículo.
Gadget de publicaciones anteriores
En la columna de la derecha de las pantallas de listado de artículos y detalle
de la parte pública, hay que defnir otra zona para las publicaciones
anteriores.
http://www.fai.es Página 13 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Se ha de mostrar una lista los meses anteriores al actual y junto a estos el
número de artículos que se han publicado en dichas fechas.
http://www.fai.es Página 14 de 14

Más contenido relacionado

La actualidad más candente

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
Symfony Zaragoza
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
Rightster
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosRightster
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
Andy Dawson
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021
lissette_torrealba
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
Rightster
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
symfony_bcn
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
Edgar Dueñas
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
Gabriela Vazquez
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3
ADWE Team
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012
Gustavo Inocente Chacón
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
Rightster
 
Actividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQLActividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQL
Francisco Medina
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
Fco Javier Núñez Berrocoso
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Soni BM
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
Juan Belón Pérez
 

La actualidad más candente (18)

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
 
Actividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQLActividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQL
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 

Destacado

Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
william kozisck
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
Rightster
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phplgcj1989
 
Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1elitatks
 
Ejercicios PHP
Ejercicios PHPEjercicios PHP
Ejercicios PHP
ramos866
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
Jaime amambal
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond VirtualisationRightster
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
epetekaun
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVIrontec
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Edgar A. Cruz Huaman
 
Módulo de PHP
Módulo de PHPMódulo de PHP
Módulo de PHP
Jorge_SS_UV
 
Lenguaje de programacion php
Lenguaje de programacion   phpLenguaje de programacion   php
Lenguaje de programacion phpzousbabastre
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
yanburbano
 
Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2jonathan02591
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQL
yanburbano
 

Destacado (20)

ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Ejercicios preliminares en php
Ejercicios preliminares en phpEjercicios preliminares en php
Ejercicios preliminares en php
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 
Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1
 
Ejercicios PHP
Ejercicios PHPEjercicios PHP
Ejercicios PHP
 
Bbdd para ejercicios php
Bbdd para ejercicios phpBbdd para ejercicios php
Bbdd para ejercicios php
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond Virtualisation
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Módulo de PHP
Módulo de PHPMódulo de PHP
Módulo de PHP
 
Lenguaje de programacion php
Lenguaje de programacion   phpLenguaje de programacion   php
Lenguaje de programacion php
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
 
Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQL
 

Similar a Iniciación PHP 5. Ejercicios

Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Examen ISC
Examen ISCExamen ISC
Examen ISCivan mtz
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablasJulio Pari
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Luis775803
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation
Víctor Bravo Bravo
 
Manual de fragmentación vertical
Manual de fragmentación vertical Manual de fragmentación vertical
Manual de fragmentación vertical
Erick Aguila Martínez
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slide
marieuri
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
lissette_torrealba
 
EXAMEN
EXAMENEXAMEN
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
paulcuenca9
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
juandavid1118
 
Sistema integrado
Sistema integradoSistema integrado
Sistema integradobruchsytem
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
Francisco Javier Toscano Lopez
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 
Manual de fragmentación mixta
Manual de fragmentación mixtaManual de fragmentación mixta
Manual de fragmentación mixta
Erick Aguila Martínez
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
Luis Fernando Aguas Bucheli
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
Jose Ponce
 

Similar a Iniciación PHP 5. Ejercicios (20)

Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Examen ISC
Examen ISCExamen ISC
Examen ISC
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablas
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation
 
Manual de fragmentación vertical
Manual de fragmentación vertical Manual de fragmentación vertical
Manual de fragmentación vertical
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slide
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Sistema integrado
Sistema integradoSistema integrado
Sistema integrado
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Manual de fragmentación mixta
Manual de fragmentación mixtaManual de fragmentación mixta
Manual de fragmentación mixta
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
 

Último

UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
Joan Ribes Gallén
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
jheisonraulmedinafer
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
almitamtz00
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
Alejandrino Halire Ccahuana
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Unidad de Espiritualidad Eudista
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Evaluación de Lengua Española de cuarto grado de primaria
Evaluación de Lengua Española de cuarto grado de primariaEvaluación de Lengua Española de cuarto grado de primaria
Evaluación de Lengua Española de cuarto grado de primaria
SoniaMedina49
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 

Último (20)

UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Evaluación de Lengua Española de cuarto grado de primaria
Evaluación de Lengua Española de cuarto grado de primariaEvaluación de Lengua Española de cuarto grado de primaria
Evaluación de Lengua Española de cuarto grado de primaria
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 

Iniciación PHP 5. Ejercicios

  • 1. Introducción al desarrollo web con PHP 5 Ejercicios Universidad de Córdoba martes, 2 de noviembre de 2010
  • 2. Índice de contenidos Introducción........................................................................................................................................ 3 Relación de ejercicios......................................................................................................................... 4 Ejercicio 01.......................................................................................................................................4 Ejercicio 02...................................................................................................................................... 4 Ejercicio 03...................................................................................................................................... 4 Ejercicio 04...................................................................................................................................... 5 Desarrollo de un blog......................................................................................................................... 7 Datos necesarios.............................................................................................................................7 Script de creación de la base de datos..........................................................................................8 Requisitos del sistema.................................................................................................................. 10 Listado de artículos...................................................................................................................10 Detalle de un artículo................................................................................................................ 10 Nuevo artículo............................................................................................................................11 Editar artículo............................................................................................................................12 Gadget de autenticación........................................................................................................... 13 Gadget de publicaciones anteriores..........................................................................................13
  • 3. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Introducción En este documento, el alumno encontrará la relación de ejercicios que ha de codifcar para obtener una mejor puntuación a la fnalización del curso. Adicionalmente, también se especifca el enunciado y material necesario para el desarrollo del trabajo optativo, “Desarrollo de un blog”. El material elaborado habrá que entregarlo en un documento con formato PDF a la dirección de correo cristina.quintana@fai.es antes del domingo 28 de noviembre de 2010. Como se especifca en el programa, las dos últimas clases presenciales del curso se dedicarán a las dudas surgidas en la resolución de los ejercicios detallados en este documento. http://www.fai.es Página 3 de 14
  • 4. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Relación de ejercicios A continuación, se detallan los enunciados de los ejercicios a desarrollar. Ejercicio 01 Dado un número en formato numérico comprendido entre 1 y 99, imprimirlo en formato texto. Construir un formulario para la recepción de datos e implementar la validación de los mismos. Ejercicio 02 Dado un día, mes y año, imprimir el día de la semana al que pertenece. El mes se introducirá en formato texto. Construir un formulario para la recepción de datos e implementar la validación de los mismos. Ejercicio 03 Construir una clase que contenga la lógica necesaria para dibujar un calendario con el que se muestra en la siguiente imagen. El código a utilizar para renderizar el calendario es: <?php // Dibuja el calendario del mes actual $calendar01 = new MyCalendar(); $calendar01->render(); // Dibuja el calendario del mes de agosto $calendar02 = new MyCalendar( "agosto", 2010 ); $calendar02->render(); http://www.fai.es Página 4 de 14
  • 5. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Ejercicio 04 Construir una aplicación con dos pantallas: 1. Listado de asignaturas Cada asignatura será un enlace al listado de alumnos matriculados en ésta. 2. Listado de alumnos de una asignaturas Mostrar el nombre de la asignatura y los datos de sus alumnos matriculados. Los datos necesarios para la conexión a la base de datos son: Host server.fai.es Base de datos curso_php Usuario curso Contraseña curso_2010 Si se desea utilizar la base de datos en entorno local, el script para la creación es el siguiente: -- -- Base de datos: `curso_php` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `alumno` -- DROP TABLE IF EXISTS `alumno`; CREATE TABLE IF NOT EXISTS `alumno` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, `apellidos` varchar(255) NOT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `alumno_asignatura` -- DROP TABLE IF EXISTS `alumno_asignatura`; http://www.fai.es Página 5 de 14
  • 6. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 CREATE TABLE IF NOT EXISTS `alumno_asignatura` ( `alumno_id` bigint(20) NOT NULL DEFAULT '0', `asignatura_id` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`alumno_id`,`asignatura_id`), KEY `alumno_asignatura_asignatura_id_asignatura_id` (`asignatura_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `asignatura` -- DROP TABLE IF EXISTS `asignatura`; CREATE TABLE IF NOT EXISTS `asignatura` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Filtros para la tabla `alumno_asignatura` -- ALTER TABLE `alumno_asignatura` ADD CONSTRAINT `alumno_asignatura_alumno_id_alumno_id` FOREIGN KEY (`alumno_id`) REFERENCES `alumno` (`id`), ADD CONSTRAINT `alumno_asignatura_asignatura_id_asignatura_id` FOREIGN KEY (`asignatura_id`) REFERENCES `asignatura` (`id`); http://www.fai.es Página 6 de 14
  • 7. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Desarrollo de un blog A continuación, se detallan los datos necesarios para el desarrollo del blog y las características que ha de cumplir en su ejecución. Datos necesarios Los datos necesarios para la conexión a la base de datos son: Host server.fai.es Base de datos curso_php_blog Usuario curso Contraseña curso_2010 La base de datos consta de la siguiente estructura: • Tabla user Contenido de los datos del usuario con privilegios. Columnas de la tabla: ▪ name Nombre del usuario. ▪ last_name Apellidos del usuario. ▪ username Nombre con el que el usuario accede a la aplicación. Este dato es único para cada usuario. ▪ password Clave con la que el usuario accede a la aplicación. • Tabla article Contenido de los artículos introducidos por usuarios privilegiados. Columnas de la tabla: ▪ created_at Fecha de registro de la publicación. ▪ title http://www.fai.es Página 7 de 14
  • 8. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Título de la publicación. ▪ value Contenido de la publicación. ▪ user_id Identifcador del usuario que ha publicado el nuevo contenido. • Tabla comment Contenido de los comentarios introducidos tanto por usuarios privilegiados como por usuarios anónimos. Columnas de la tabla: ▪ created_at Fecha de registro de la publicación. ▪ value Contenido de la publicación. ▪ article_id Identifcador del artículo al que hace referencia. Script de creación de la base de datos Se adjunta el script de creación de la base de datos a utilizar en este ejercicio, para aquellos que deseen realizar el ejercicio en su ordenador personal. -- -- Base de datos: `curso_php_blog` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `article` -- DROP TABLE IF EXISTS `article`; CREATE TABLE IF NOT EXISTS `article` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `value` varchar(255) NOT NULL, `created_at` date NOT NULL, `user_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `user_id_idx` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; http://www.fai.es Página 8 de 14
  • 9. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `comment` -- DROP TABLE IF EXISTS `comment`; CREATE TABLE IF NOT EXISTS `comment` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `value` varchar(255) NOT NULL, `created_at` date NOT NULL, `article_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `article_id_idx` (`article_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `user` -- DROP TABLE IF EXISTS `user`; CREATE TABLE IF NOT EXISTS `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `last_name` varchar(100) NOT NULL, `username` varchar(30) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Filtros para la tabla `article` -- ALTER TABLE `article` ADD CONSTRAINT `article_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -- -- Filtros para la tabla `comment` -- ALTER TABLE `comment` ADD CONSTRAINT `comment_article_id_article_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`); http://www.fai.es Página 9 de 14
  • 10. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Requisitos del sistema El problema a resolver se compone de cuatro pantallas, dos públicas y otras dos protegidas por autenticación de usuario. Listado de artículos Esta pantalla es de acceso público para todos los usuarios de la red, y muestra el listado de artículos almacenados en el sistema en orden descendente de la fecha de creación. De cada artículo se muestra el título, seguido de la fecha de creación. Este título será un enlace a la pantalla de detalle de dicho artículo. Además de ésto, esta pantalla posee una columna a la derecha dónde se muestran los gadget de autenticación y publicaciones anteriores, los cuáles se explican más adelante en este documento. Detalle de un artículo Esta pantalla es de acceso público para todos los usuarios de la red, y muestra la información del artículo que se ha seleccionado en la pantalla de listado, a través de la cuál se ha accedido. Se detalla el título, descripción y fecha de creación del artículo. Acompañando a estos datos, se debe implementar un formulario para añadir comentarios asociados a dicho artículo. Además de lo anterior, se ha de visualizar el listado de comentarios que usuarios de la aplicación han añadido a través del formulario anterior. Estos comentarios se han de mostrar en orden descendente según la fecha en la que han sido introducidos. Replicando la funcionalidad de la pantalla de listado, también posee una http://www.fai.es Página 10 de 14
  • 11. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 columna a la derecha dónde se muestran los gadget de autenticación y publicaciones anteriores, los cuáles se explican más adelante en este documento. Nuevo artículo Esta pantalla es de acceso restringido, sólo se podrá acceder a esta pantalla tras autenticarse mediante el gadget de la columna de la derecha de las pantallas de listado y detalle de artículos. Esta pantalla muestra un formulario de creación dónde aparecerán los campos título y artículo o descripción. Al guardar este formulario se tomará la fecha actual para el campo create_at de la base de datos. Debajo de este formulario, han de aparecer el listado de artículos publicados por el usuario autenticado en orden descendente por fecha de creación. Cada uno de estos artículos de ese listado ha de mostrar el título del artículo http://www.fai.es Página 11 de 14
  • 12. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 seguido de la fecha de creación. El título ha de ser un enlace que redirija a la pantalla de edición de dicho artículo, la cuál se describe a continuación. Editar artículo Esta pantalla es de acceso restringido, es decir, sólo se puede acceder a esta pantalla, estando autenticado en el sistema. La pantalla es idéntica a la pantalla del formulario de nuevo artículo, salvo porque el formulario aparece completado con los datos del artículo que se está editando. http://www.fai.es Página 12 de 14
  • 13. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Gadget de autenticación Situado en las parte o columna de la derecha de las pantallas de listado de artículos y detalle de la parte pública del blog, hay que defnir una zona dónde los usuarios con privilegios puedan acceder al área privada. Esta zona vendrá defnida por dos cajas de texto en las que especifcar el nombre de usuario y la contraseña. Al pulsar el botón registrar, se han de comprobar los datos y en caso de ser correctos redirigir al formulario de nuevo artículo. Gadget de publicaciones anteriores En la columna de la derecha de las pantallas de listado de artículos y detalle de la parte pública, hay que defnir otra zona para las publicaciones anteriores. http://www.fai.es Página 13 de 14
  • 14. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Se ha de mostrar una lista los meses anteriores al actual y junto a estos el número de artículos que se han publicado en dichas fechas. http://www.fai.es Página 14 de 14