Proyecto, PHP y MySQL

16
Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage En esta oportunidad vamos a comenzar el proceso del desarrollo de la aplicación creando la base de datos con sus respectivas tablas y posteriormente vamos a crear los formularios que forman parte de la aplicación. El caso planteado en el proyecto nos dice lo siguiente: “El proyecto es el desarrollo de una aplicación para el sector bancario. Este banco llamado Banco YanKa tiene usuarios quienes depositaron su dinero en cuentas de ahorro. Cada usuario posee un número de cuenta, nombre, apellido, número de identificación, teléfono, celular, nombre de usuario y password para ingresar a su perfil en la aplicación. Los usuarios cuando ingresen a su perfil pueden ver cuál es el saldo actual, puede retirar dinero y puede agregar dinero. El banco por su parte cuenta con personal dispuesto a ayudarles a los usuarios. Para la aplicación el banco tiene dos tipos de perfiles, los asesores de cuenta y el gerente. El asesor de cuenta tiene un nombre un apellido, y los datos básicos además de un nombre de usuario y password. Los asesores de cuenta pueden agregar a los usuarios en el sistema, solo deben pedirles el nombre completo, el número de cedula y un monto inicial de 200 mil pesos para ser registrados. Si no da alguno de estos datos no podrá ser parte del banco. Por su parte los gerentes tienen un perfil con datos básicos y cuando estén en el sistema el gerente podrá agregar solamente asesores de cuenta en el sistema. Su trabajo consiste en diseñar y desarrollar toda la aplicación con todos sus requerimientos explícitos e implícitos.” Crearemos inicialmente las tablas y la base de datos utilizando MySQL. Nuestra base de datos se llamará “database_bank” Y tendrá las tablas: Gerente, Asesor, Administrador, Cliente, Usuario, Cuenta. Tabla Cliente Tabla Asesor

description

Ejemplo Proyecto con PHP y MySQL

Transcript of Proyecto, PHP y MySQL

Page 1: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

En esta oportunidad vamos a comenzar el proceso del desarrollo de la aplicación creando la base

de datos con sus respectivas tablas y posteriormente vamos a crear los formularios que forman

parte de la aplicación.

El caso planteado en el proyecto nos dice lo siguiente:

“El proyecto es el desarrollo de una aplicación para el sector bancario. Este banco llamado Banco YanKa tiene usuarios quienes depositaron su dinero en cuentas de ahorro. Cada usuario posee un número de cuenta, nombre, apellido, número de identificación, teléfono, celular, nombre de usuario y password para ingresar a su perfil en la aplicación. Los usuarios cuando ingresen a su perfil pueden ver cuál es el saldo actual, puede retirar dinero y puede agregar dinero. El banco por su parte cuenta con personal dispuesto a ayudarles a los usuarios. Para la aplicación el banco tiene dos tipos de perfiles, los asesores de cuenta y el gerente. El asesor de cuenta tiene un nombre un apellido, y los datos básicos además de un nombre de usuario y password. Los asesores de cuenta pueden agregar a los usuarios en el sistema, solo deben pedirles el nombre completo, el número de cedula y un monto inicial de 200 mil pesos para ser registrados. Si no da alguno de estos datos no podrá ser parte del banco. Por su parte los gerentes tienen un perfil con datos básicos y cuando estén en el sistema el gerente podrá agregar solamente asesores de cuenta en el sistema. Su trabajo consiste en diseñar y desarrollar toda la aplicación con todos sus requerimientos explícitos e implícitos.” Crearemos inicialmente las tablas y la base de datos utilizando MySQL. Nuestra base de datos se llamará “database_bank” Y tendrá las tablas: Gerente, Asesor, Administrador, Cliente, Usuario, Cuenta. Tabla Cliente

Tabla Asesor

Page 2: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Tabla Gerente

Tabla Cuenta

Tabla Administrador

Tabla Usuario

Page 3: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Según mis tablas creadas, mi aplicación va a contar con 4 perfiles para ingresar, el que más permisos tiene será el administrador que podrá ver, crear, editar y eliminar todo. Luego seguirá el Gerente que manejará la información de los asesores de cuenta. Después seguirá el asesor de cuenta que manejará la información de los clientes y por últimos estarán los clientes. Aunque la aplicación en la descripción dice unas cosas uno puede sugerir cambios para crearla mejor, por esa razón el campo password y user no se crean en las tablas de cada perfil, se crea una sola tabla para consultar y con eso la hacemos más óptima. Igualmente creé una tabla adicional llamada administrador porque cuando la aplicación no tenga un solo dato se requiere de un perfil que pueda crear todo de la nada, y que también pueda ver todo para brindar a futuro un soporte, el gerente que era el perfil más alto no podía ver todo, por eso razón se creó una tabla superadministrador. Mi base de datos quedará así:

Bajo estas seis tablas vamos a trabajar. Es claro que esta aplicación tendrá los perfiles de:

1. Administrador 2. Gerente 3. Asesor 4. Cliente

Y que dependiendo del perfil con el que ingresemos podremos ver más o menos opciones. Es decir que el formulario de registro de un cliente según lo explicado en el problema a resolver solo lo podrán ver el asesor de cuenta y el administrador (que lo ve, crea, edita y elimina todo). Para ello crearemos la pantalla donde inician sesión. Para que el administrador pueda crear un gerente, luego crearemos las pantallas que deberá ver el gerente para que pueda crear a su vez asesores, luego crearemos las pantallas de asesores para que a su vez puedan crear clientes y cuentas. En ese orden comenzaremos.

Page 4: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Crearemos una carpeta para nuestro proyecto llamada BANK. La pantalla que tendrá el inicio de sesión se llamará index.php Esta tendrá un formulario para iniciar sesión. El código de esta pantalla es:

Pero antes de validar un usuario debemos tener alguno creado, si no es imposible validar un usuario sin que exista al menos uno, para ello utilizaremos el perfil del administrador que puede hacer de todo. Llenaremos los datos de mi base de datos de manera manual para crear un administrador, será la única vez que haremos así ya que para crear administradores no tendremos pantallas, solo existirá un administrador, para gerente, asesor, cliente y cuenta si existirán pantallas. Vamos al phpmyadmin y llenaremos los datos en la tabla administrador y usuario. Lo haremos de esta manera: Clic en Insertar de la tabla administrador

Page 5: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Y llenamos un registro así:

Y presionamos el botón continuar. Si todo fue correcto nos debe mostrar lo siguiente:

Y si damos clic en examinar de la tabla administrador nos debe mostrar esto:

Page 6: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Ahora debemos crear una contraseña y nombre de usuario para el administrador, sino no hay manera que pueda ingresar a nuestra aplicación. Para ello vamos a dar clic en database_bank para regresar a la pantalla principal de mi base de datos y luego clic en insertar pero de la tabla usuario.

Page 7: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Y llenamos el formulario con los siguientes datos:

Y presionamos continuar para crear. Colocamos 123456 en cedula porque era el número de cedula del único administrador que yo tengo creado en el sistema y era mi forma de relacionarlo entre si ambas tablas. Es muy importante saber que para este caso será la única vez que veremos la contraseña tan explicita en mi base de datos, uno nunca deberá conocer la contraseñas de los usuarios de la aplicación, para ello debemos encriptarla y así validar sin verla, pero eso lo veremos más adelante. Ahora si volviendo al código tenemos un formulario de validación que utiliza el método post y una action que me envía los datos a validaUsuario.php, como quien dice nos hace falta el archivo validaUsuario.php y nos hace falta un archivo para hacer la conexión a la base de datos. Crearemos primero la conexión a la base de datos. Llamaremos este archivo conexión.php

Page 8: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

root es el nombre de usuario para yo administrar mis bases de datos y no tengo contraseña por eso están las dos comillas pegadas y coloco mi servidor y el nombre de mi base de datos que creé inicialmente. Ahora vamos a crear el archivo para validar usuario. Se llamará validaUsuario.php Como vamos a validar usuarios necesitamos que se creen sesiones de usuarios, para que podamos validar si un usuario está validado correctamente o no para ver una determinada página, para ello utilizaremos un sesión_start() y unas variables de sesión, que dicho sea de paso son variables que solo tendrán vida mientras la sesión exista si no existe una sesión creada, es decir no hay nadie que se haya logueado, las variables de sesión no exisitiran. Para complementar recomiendo leer los siguientes links: http://www.webestilo.com/php/php12a.phtml http://www.uterra.com/codigo_php/codigo_php.php?ref=las_variables_de_sesion_en_php http://www.arumeinformatica.es/blog/sesiones-en-php-que-son-y-como-funcionan/ pero para no perdernos haremos el proceso despacio. Repito, cuando alguien se loguee deberemos crear una sesión para que esta persona pueda navegar dentro de la aplicación, si no se loguea no se creara una sesión y si no se crea una sesión no podrá navegar dentro de la aplicación. Un ejemplo es que usted no puede ver sus datos de su perfil de Facebook de sus notificaciones o mensajes sin antes haber iniciado sesión. Cuando usted inicia sesión puede ver todo lo respecto a su perfil pero no podrá ver los datos de su amigo, novia o contacto, solo los suyos, para esto es la sesión, para proteger su navegación. Crearemos el archivo entonces para validar un usuario. Código validaUsuario.php PRESTE ATENCIÓN A LOS COMENTARIOS DEL ARCHIVO.

Page 9: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Como podemos deducir nos hace falta ahora crear un archivo llamado app.php. Para comprender muy bien esto que acabamos de hacer sugiero leer muy bien los comentarios que están en el archivo e investigar en estos links: https://www.google.com.co/?gfe_rd=cr&ei=oCQsVOegHIGDsgee0YC4CQ&gws_rd=ssl#q=validar%20usuario%20y%20contrase%C3%B1a%20php y complementar con este video: https://www.youtube.com/watch?v=FKWYKK8yciA Ahora crearemos el archivo app.php El proceso es el siguiente, primero validaremos que la sesión este iniciada, si no que me redireccione a la página principal, tiene sentido porque nadie podrá ver el contenido de la pantalla app.php por seguridad, solo quien este logueado, luego vamos a saludar al que iniciar sesión con un bienvenido y finalmente mostraremos un menú dependiendo del perfil, para ello utilizaremos un if. Para validar el primer punto de este proceso utilizaremos el método empty que valida si una variable esta vacia o no, si esta vacia significa que nadie se ha logueado en el sistema. El código es el siguiente.

Page 10: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Mi aplicación en funcionamiento va así: Página principal:

Page 11: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Cuando se loguea va a esta pantalla. Como se logueo como administrador puede crear gerentes y asesores, pero crearemos por ahora gerentes.

Antes que nada crearemos un archivo para cerrar o terminar la sesión, se llamara según mi código cerrarsesion.php

Tengo hasta ahora estos archivos:

Vamos a crear un gerente desde el perfil de administrador, para ello crearemos un archivo llamado creargerente.php, actualizamos esa ruta en mi archivo app.php y luego creamos el código para el formulario y el registro de un gerente.

Page 12: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Y ahora este es el código para el formulario del gerente. Para crear el formulario que me ayude a crear un gerente debo mirar que datos me piden en mi base de datos en la tabla gerente.

Vamos a pedir todos los campos menos el código ya que se crea solo al ser autoincrement y menos el perfil. También agregamos dos campos mas que serán para usuario y contraseña, para este caso, guardaremos datos en la tabla gerente pero como debemos agregarlo al sistema también guardaremos en la tabla usuario y asi ya crearemos un gerente. Código de creargerente.php :

Page 13: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

La pantalla anterior no la debe ver nadie, solo quien esté logueado en el sistema por eso validamos la sesión, esto lo haremos en cada archivo que deseemos asegurarnos de validar la sesión. Ahora como podemos ver estos datos los envía a un archivo llamado creargerenteValida.php, en este archivo validaremos todo el proceso que me permita crear un gerente. El código es el siguiente:

Page 14: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Como vemos si el gerente es creado exitosamente se redirecciona a la página principal de la aplicación app.php Verificamos que guarde, llenamos el formulario:

Page 15: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Y verificamos que la base de datos en la tabla gerente y usuario estén llenos. Tabla Gerente

Y la Tabla Usuario

Es decir ya podemos entrar al sistema como gerente, solo debemos ingresar con el nombre de usuario y la contraseña del gerente y nos deberá mostrar el menú de opciones propio del gerente.

Al dar clic vemos que ya me muestra las opciones propias que solo debe ver el gerente, lo que quiere decir que el if que compara los perfiles nos está funcionando.

Page 16: Proyecto, PHP y MySQL

Yan David Burbano Amariles - Ingeniero de Sistemas www.davidamariles.com amarilesyan.blogspot.com Facebook.com/davidamarilespage

Este tutorial va hasta aquí, la tarea consiste en crear una interfaz gráfica mas amigable, con código html y estilos css, utilizando colores y agregándole un logo.