150
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL MANUAL DE APRENDIZAJE CÓDIGO: 89001703 Profesional Técnico DESARROLLO DE APLICACIONES WEB DESARROLLO DE SOFTWARE

DESARROLLO DE SOFTWARE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001703... · Sistema operativo Windows. ... Investigue: ¿Qué es ... Mencione

  • Upload
    dinhnga

  • View
    223

  • Download
    3

Embed Size (px)

Citation preview

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL

MANUAL DE APRENDIZAJE

CÓDIGO: 89001703

Profesional Técnico

DESARROLLO DE APLICACIONES WEB

DESARROLLO DE SOFTWARE

DESARROLLO DE APLICACIONES WEB

TABLA DE CONTENIDO

TAREA PÁG.

I. ¿Qué es PHP? 6

II. Fundamentos de Programación. 21

III. Arreglos. 42

IV. Funciones. 55

V. Formularios. 68

VI. Administración de base de datos con MYSQL. 80

VII. Conectividad a MYSQL desde PHP. 104

VIII. Control de sesiones. 122

IX. Acceso a otras BDS. 128

X. Pasarela de pago. 141

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 5

DESARROLLO DE APLICACIONES WEB I. ¿QUÉ ES PHP? En esta tarea trataremos las siguientes operaciones: Instalación de servicios. Editores de programa.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Instalación de servicios. Editores de programa. 1.1. INSTALACIÓN DE SERVICIOS.

Un lenguaje de programación que no necesita presentación. Es quizás el lenguaje más popular y el más utilizado a nivel mundial para el desarrollo web. Además si programas en PHP

también dispones de un montón de autoinstalables para habilitar en tu hosting. Se utiliza para generar páginas web dinámicas no se olviden que llamamos página web estática a aquella cuyos contenidos siempre son iguales, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 6

DESARROLLO DE APLICACIONES WEB

Bien manos a la obra, vamos a empezar primero Instalando y configurando un servidor web paso a paso.

Nota: Los pasos que vamos a realizar sería lo mismo si estuviésemos en otra plataforma como Linux, etc. Servicio N° 1: Instalación del motor de base de datos – Mysql 1. Descargarlo desde esta página web:

https://dev.mysql.com/downloads/windows/installer/5.5.html

2. Abrir el programa descargado:

3. Se mostrara el asistente de instalación:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 7

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 8

DESARROLLO DE APLICACIONES WEB

4. Iniciar el servidor mysql desde el menú inicio del sistema operativo.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 9

DESARROLLO DE APLICACIONES WEB

5. Crear una base de datos de prueba.

Servicio N° 2: Instalación del servidor web – Apache Web Server. 1. Descargarlo desde la siguiente página web:

http://archive.apache.org/dist/httpd/binaries/win32/

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 10

DESARROLLO DE APLICACIONES WEB

2. Abrir el programa descargado:

3. Se mostrará el asistente de instalación:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 11

DESARROLLO DE APLICACIONES WEB Nota: Si se tiene la información de la dirección de red es decir el ip público y demás el nombre del dominio ya registrado, solo quedaría reemplazar la información que se muestra en la imagen.

4. Al finalizar la instalación se muestra el siguiente icono en la barra de tareas.

5. Probar el servidor web en el navegador web.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 12

DESARROLLO DE APLICACIONES WEB

Configurar PHP en el Servidor web – Apache Web Server.

1. Descargar el archivo desde la siguiente página web:

http://php.net/releases/

2. Crear la carpeta “php” en la unidad “c: \”

3. Descomprimir el archivo y copiar todo el contenido en la carpeta creada, como se muestra en la imagen.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 13

DESARROLLO DE APLICACIONES WEB

Se debe mostrar de la siguiente manera:

4. Renombrar el archivo “php.ini-recommended” como “php.ini”

5. Bien ahora ejecuta el programa Bloc de notas como administrador.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 14

DESARROLLO DE APLICACIONES WEB

6. Abrir el archivo “php.ini”

7. Busque y edite las siguientes líneas.

Nota: Con ello se activara todas las librerías para la conexión a base de datos.

Nota: Con ello se activará el uso de variables en un ámbito global. 8. Quitar los punto y comas de las siguientes líneas:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 15

DESARROLLO DE APLICACIONES WEB

9. Grabar el archivo y cerrar.

10. Copie los siguientes archivos ubicados en la carpeta “c:\php” en la carpeta

“C:\Windows\System32”.

Ahora configurar el archivo de configuración del servidor web.

11. Abrir el archivo “httpd.conf” en el bloc de notas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 16

DESARROLLO DE APLICACIONES WEB

12. Digite las siguientes líneas.

13. Grabar y reiniciar el servidor web.

14. Crear la siguiente página php para probar la configuración.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 17

DESARROLLO DE APLICACIONES WEB 15. Grabarlo con el nombre “prueba.php” en la carpeta: “C:\Program

Files\Apache Group\Apache2\htdocs”.

16. Mostrar la página php en el navegador.

http://127.0.0.1/prueba.php

1.2. EDITORES DE PROGRAMA. Lo único que necesitamos para crear páginas y aplicaciones web es un simple editor de texto plano y nuestra imaginación. El propio Bloc de notas o similar que viene con Windows nos sirve perfectamente. No obstante siempre viene bien contar con el soporte que nos

brindan ciertas herramientas especializadas. Las más potentes nos ofrecen todo tipo de ayuda contextual para no tener que recordar cada detalle de los cientos de atributos de CSS y etiquetas HTML

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 18

DESARROLLO DE APLICACIONES WEB disponibles, vista previa de las páginas que estamos creando, soporte de navegadores, validación de etiquetas, verificación de accesibilidad, y muchas otras cuestiones avanzadas. CoffeCup Free Editor Es un buen editor de HTML, es un editor multiplataforma y gratuito con soporte para multitud de características: ayuda contextual a la escritura de código, vista previa del resultado a medida que escribimos, etc. http://www.coffeecup.com/free-editor/ Kompozer Es un editor de HTML y CSS que es gratuito y multiplataforma (Windows Mac y Linux). Ofrece vista previa de la página mientras se escribe código, múltiples pestañas, edición específica de CSS, etc. http://www.kompozer.net/ Amaya Es el editor web que valida el código HTML como a construir su página, y puesto que usted puede ver la estructura de árbol de los documentos de su web, que puede ser muy útil para aprender a entender el DOM y como sus documentos se vean en la estructura del documento. Tiene un montón de características que la mayoría de los diseñadores web no vuelva a usar, pero si usted está preocupado acerca de las normas y quieres estar 100% seguro de que sus páginas trabajar con los estándares del W3C, este es un gran editor para su uso. http://www.w3.org/Amaya/ BlueGriffon Este excelente editor WYSIWYG utiliza por debajo el motor de renderizado de Firefox para visualizar las páginas a medida que las vamos editando. Cuenta con ayudas a la escritura de código y ofrece incluso la posibilidad de probar en tiempo real transformaciones 3D de CSS3 sin abandonar el editor (ventajas de utilizar el motor Gecko de Mozilla). Es gratuito, Open Source y multiplataforma (Windows, Mac y Linux) y está disponible en Español entre otros muchos idiomas. http://bluegriffon.org/ Sublime Text Un editor de texto avanzado para programadores, multiplataforma. No ofrece muchas de las características de ayuda al programador web que sí ofrecen la mayoría de los otros entornos, por lo que es recomendable sobre todo si vamos a trabajar mucho directamente con código, especialmente JavaScript.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 19

DESARROLLO DE APLICACIONES WEB http://www.sublimetext.com/ DreamWeaver Es un software de edición en forma de un estudio su propósito es construir, desarrollar, diseñar y editar sitios, vídeos y aplicaciones web. Adobe Dreamweaver se ha convertido en el programa más utilizado para el diseño y la programación web, esto gracias a las funciones que posee, su fácil integración a otros programas. http://www.adobe.com/es/products/dreamweaver.html NetBeans Es un entorno de desarrollo gratuito y de código abierto permite el uso de un amplio rango de tecnologías de desarrollo tanto para escritorio, como aplicaciones Web, o para dispositivos móviles. Da soporte a las siguientes tecnologías, entre otras: Java, PHP, Groovy, C/C++, HTML5, Además puede instalarse en varios sistemas operativos: Windows, Linux, Mac OS. https://netbeans.org/

1. Investigue: ¿Qué es phpMyAdmin y cuál es su utilidad? – explique. 2. Mencione sobre otros editores web, nombres y en que sistemas operativos

se usan. 3. ¿Qué es virtual host? – Explique. 4. Visualice el video: Instalar – Servidor web apache en Fedora, de la url:

https://www.youtube.com/watch?v=daBOnwthp58, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 20

DESARROLLO DE APLICACIONES WEB II. FUNDAMENTOS DE PROGRAMACIÓN. En esta tarea trataremos las siguientes operaciones: Inserción de instrucciones PHP. Variables. Constantes. Operadores. Instrucciones condicionales.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Inserción de instrucciones PHP. Variables. Constantes. Operadores. Instrucciones condicionales. 2.1. INSERCIÓN DE INSTRUCCIONES PHP. PHP: Procesador de Hipertexto. Para interpretar un archivo, PHP simplemente interpreta el texto del archivo hasta que encuentra uno de los caracteres especiales que delimitan el inicio de código PHP. El intérprete ejecuta entonces todo el código que encuentra, hasta

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 21

DESARROLLO DE APLICACIONES WEB que encuentra una etiqueta de fin de código, que le dice al intérprete que siga ignorando el código siguiente. Este mecanismo permite ingresar código PHP dentro de HTML: todo lo que está fuera de las etiquetas PHP se deja tal como está, mientras que el resto se interpreta como código. Separación de instrucciones. PHP requiere que las instrucciones terminen en punto y coma al final de cada sentencia. La etiqueta de cierre de un bloque de código de PHP automáticamente implica un punto y coma; no es necesario usar un punto y coma para cerrar la última línea de un bloque de PHP. La etiqueta de cierre del bloque incluirá la nueva línea final inmediata si está presente.

Insertar instrucciones PHP usando nuestro servidor web Apache Web Server.

1. Abrir DreamWeaver como administrador.

2. Crear un sitio web en nuestro editor DreamWeaver.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 22

DESARROLLO DE APLICACIONES WEB

Nota: Carpeta del sitio local.

Se mostrará la siguiente ventana:

3. Crear una nueva página PHP.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 23

DESARROLLO DE APLICACIONES WEB 4. Ingresar las siguientes líneas.

5. Luego de crear este pequeño ejemplo grabarlo con el nombre “ejemplo1.php”.

6. Realizar una vista previa en el navegador.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 24

DESARROLLO DE APLICACIONES WEB

La instrucción echo y print ambos son constructores de lenguaje que muestran cadenas de texto con diferencias algo sutiles. La diferencia es que print imprime una cadena, echo puede imprimir más de una separadas por coma.

print “Hola”; echo “Hola”, “Hola de nuevo”;

Usar expresiones regulares en la impresión de cadena de texto.

Carácter Significado

\n Salto de línea

\r Retorno de carro

\t Tabulador horizontal

\\ Comentario de una solo línea

\* Comentario de varias lineas

\' Apostrofe

\" Comillas dobles

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 25

DESARROLLO DE APLICACIONES WEB Luego, grabarlo con el nombre “ejemplo2.php” y realizar una vista previa en el navegador.

2.2. VARIABLES. Las variables en PHP son representadas con un signo de dólar ($) seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas. Recordar que una variable es un espacio de la memoria de la computadora a la que asignamos un contenido que a grandes rasgos puede ser un valor numérico o alfanumérico. Para declarar un nombre de variable válido, éste tiene que empezar con una letra (o si no empieza con una letra, tendrá que hacerlo con un carácter de subrayado), seguido de cualquier número de letras, números y caracteres de subrayado, sin espacios.

Ejemplo Observación $4variable Nombre de variable inválido. $_4variable Nombre de variable válido. $variable4 Nombre de variable válido. $otra Nombre de variable válido. $1_otra Nombre de variable inválido. $variable_de_nombre_muy_largo Nombre de variable válido. $ABC Nombre de variable válido. $ A B C Nombre de variable inválido. $A_y_B_x_C Nombre de variable válido.

Las variables en PHP

Tipo Ejemplo Valor máximo Valor mínimo Observaciones

Integer $a=1234 2147483647 -2147483647 Cualquier valor numérico (dentro de este intervalo) que se asigne a una variable la convertirá a este tipo.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 26

DESARROLLO DE APLICACIONES WEB

Declarar variables y asignarle un valor en un ámbito (alcance) privado y público.

Double $a=1.23 Cualquier valor numérico decimal o entero (fuera del intervalo anterior) que se asigne a una variable la convertirá a este tipo

String $a="123" Cualquier valor entrecomillado (sean números o letras) que se asigne a una variable la convertirá a este tipo

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 27

DESARROLLO DE APLICACIONES WEB

Luego grabarlo con el nombre “ejemplo3.php” y realizar una vista previa en el navegador.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 28

DESARROLLO DE APLICACIONES WEB

Declarar variables y asignarle un valor en un ámbito global. Nota: Global se especifica que vamos a utilizar las variables en cualquier página PHP creado en nuestro proyecto web.

1. Crear la siguiente página PHP, lo llamaremos “modulo.php” porque se solo se utilizaría para declarar variables.

2. Crear la siguiente página PHP para llamar a las variables globales, luego

grabarlo con el nombre “ejemplo4.php”.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 29

DESARROLLO DE APLICACIONES WEB 3. Realizar una vista previa solo con la página web “ejemplo4.php”.

Bien vamos a ver otra forma de enviar variables entre páginas web PHP, para ello enviaremos las variables a través del URL. 4. Crear la siguiente página web PHP, luego grabarlo con el nombre

“ejemplo5.php”.

5. Ahora vamos mostrar las variables creando la página “ejemplo6.php”.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 30

DESARROLLO DE APLICACIONES WEB 2.3. CONSTANTES. Una constante es algo que no cambia o no varía, esto es exactamente lo que se busca con las constantes en PHP. Las constantes son lo opuesto a las variables en PHP, ya que una vez que se le define su valor este no cambia. Las constantes son útiles para definir valores que no van a cambiar. Por ejemplo, podemos definir una constante llamada PI que contenga el valor de 3,14. Este valor no va a cambiar, por lo tanto es más lógico utilizar una constante en vez de una variable. La diferencia entre una constante y una variable es que la constante es global, por lo tanto se puede utilizar en todo el ámbito del script sin ningún problema.

Definir una constante en un ámbito global.

1. Crear la siguiente página PHP, luego grabarlo con el nombre “modulo_constantes.php”.

Nota: define () es una función que se utiliza para declarar constantes en un ámbito global.

2. Ahora vamos los valores de las constantes, para ello debemos crear la

siguiente página PHP, al finalizar grábalo con el nombre “mostrar_constantes.php”

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 31

DESARROLLO DE APLICACIONES WEB

3. Realizar una vista previa en el navegador web.

2.4. OPERADORES. Los operadores en PHP y en cualquier otro lenguaje de programación, nos permiten realizar operaciones como asignar, multiplicar, concatenar o comparar sobre variables y datos el operador más importante es el operador de asignación (=) que sirve para asignar un valor a una variable. Operador Tipo Descripción Ejemplo

Operadores Aritméticos

+ Suma Calcula la suma de dos operandos $resultado = 10 + 20;

- Resta Calcula la diferencia entre dos operandos $resultado = 10 - 20;

* Multiplicación Multiplica dos operandos $resultado = 10 * 20;

/ División Divide dos operandos $resultado = 10 / 20;

% Modulo Calcula el residuo de una división $resultado = 10 % 20; Operadores de Comparación

== Igual a Retorna True si el primer operando es igual al segundo

$resultado = 1 == 1; // el resultado será True

!= ó <> Diferente a Retornan True si el primer operando es diferente al segundo

$resultado = 1 != 1; // el resultado sera False

=== Igual a Retorna True si el primer operando es igual al segundo en valor y tipo de dato $resultado = 1=== 1; // el resultado será True

!== Igual a Retorna True si el primer operando no es igual al segundo en valor y tipo de dato $resultado = 1 !== '1'; // el resultado será False

< Menor que Retorna True si el primer operando es menor que el segundo

$resultado = 1 < 2; // el resultado será True

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 32

DESARROLLO DE APLICACIONES WEB > Mayor que Retorna True si el primer operando es

mayor que el segundo $resultado = 1 > 2; // el resultado será False

<= Menor o igual que

Retorna True si el primer operando es menor o igual que el segundo

$resultado = 1 <= 1; // el resultado será True

>= Mayor o igual que

Retorna True si el primer operando es mayor o igual que el segundo

$resultado = 1 >= 2; // el resultado será False

Operadores Lógicos

&& AND Realiza una operación lógica "AND" $resultado=True && True;// $resultado tendrá valor True $resultado=True && False; //$resultado tendrá valor False

|| OR Realiza una operación lógica "OR" ( OR exclusivo)

$resultado = True || True; // $resultado tendrá valor False $resultado=True && False;//$resultado tendrá valor True

! NOT Realiza una negación de la operación a la cual se anteponga

$resultado = !True ; // $resultado tendrá valor False $resultado = !False; // $resultado tendrá valor True

Operadores de Incremento/Decremento

++$n Incremento Incrementa $n en uno, y luego devuelve $n print $n++;

$n++ Incremento Devuelve $n, luego incrementa $n en uno print ++$n;

--$n Decremento Decrementa $n en uno, y luego devuelve $n print $n--;

$n-- Decremento Devuelve $n, luego decrementa $n en uno print --$n;

Operador de Concatenación

. Concatena Permite concatenar cadenas de texto

$cadena1 = 'ETI-'; $cadena2 = ' SENATI'; //Concatenamos echo $cadena1 . $cadena2; // Resultado es: ETI-SENATI

Operadores de Asignación

= Asignación Realiza la asignación de un valor que este a la derecha a una variable que este a la izquierda del operador

$resultado = 10 ;

+= Suma-Asignación

Suma el valor de la derecha al valor de la variable a la izquierda y lo asigna en la variable

$resultado = 10; $resultado += 5; // $resultado será 15

-= Resta-Asignación

Resta el valor de la derecha al valor de la variable a la izquierda y lo asigna en la variable

$resultado = 10; $resultado -= 5; // $resultado será 5

*= Multiplicación-Asignación

Multiplica el valor de la derecha y el valor de la variable a la izquierda y lo asigna en la variable

$resultado = 10; $resultado *= 5; // $resultado será 50

/= División-Asignación

Divide el valor de la derecha y el valor de la variable a la izquierda y lo asigna en la variable

$resultado = 10; $resultado /= 5; // $resultado será 2

%= Módulo-Asignación

Calcula el módulo del valor de la derecha y el valor de la variable a la izquierda y lo asigna en la variable

$resultado = 10; $resultado %= 5; // $resultado será 0

.= Concatena-Asignación

Concatena el valor de la derecha y el valor de la variable a la izquierda y lo asigna en la variable

$resultado = 'ETI'; $var .= 'SENATI'; // $resultado será ETISENATI

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 33

DESARROLLO DE APLICACIONES WEB 2.5. INSTRUCCIONES CONDICIONALES. Anteriormente hemos mostrado los operadores para realizar cálculos, concatenar, asignar valores, etc. pero la programación es más interesante cuando se toman sus propias decisiones, en PHP existen instrucciones condicionales que se describen a continuación: Sintaxis IF: if( condición) {

instrucciones; }

if(condición) { instrucciones; } else { instrucciones; }

Ejemplo sobre condición Ingresar un número y si el número es mayor a 100, mostrar en la pantalla el número es mayor a 100. (condicion1.php)

En script sólo mostrará que el número es mayor a 100 cuando cumpla con la condición $numero > 100 sino cumple con la condición no hace nada.

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 34

DESARROLLO DE APLICACIONES WEB

Ejemplo sobre condición. Declarar el nombre del empleado, las horas trabajadas, luego Calcular pago bruto (50 la hora) ESSALUD y total a pagar, mostrar los resultados del script.

Nota: el ESSALUD es 9% si el sueldo es mayor 2400 sino es el 3.5% del sueldo del empleado. (condicion2.php)

En este script se usó en el cálculo del ESSALUD una decisión que tiene dos salidas una cuando se cumple la condición que es el entonces y la otra cuando no se cumple la condición que es el sino (else), ahora esto nos ayuda a que nuestros scripts puedan

tomar una decisión cuando la condición se cumple y otra cuando no se cumple. Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 35

DESARROLLO DE APLICACIONES WEB Ahora en el siguiente ejemplo que se presenta, ya no hay dos soluciones a la condición sino tres, cuando sucede esto se usan condiciones anidadas. Sintaxis de una condición anidada:

Ingresar el nombre del empleado, la zona de trabajo , las ventas del empleado , luego calcular su comisión en base a un porcentaje basado en la zona de trabajo, luego determinar el ESSALUD y el total a pagar, mostrar los datos.(condicion3.php)

Tabla para el cálculo de la comisión:

Zona Porcentaje de Comisión A 6% B 8% C 9%

If(condición1) Instrucciones;

Else If(condición2) {

Instrucciones; } Else

If(condición3) {

Instrucciones; } Else {

Instrucciones; }

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 36

DESARROLLO DE APLICACIONES WEB

En este script usamos decisiones anidadas para el cálculo de la comisión del empleado, esto porque se tenían varias opciones de la cuales elegir. El ultimo sino donde la comisión es 0 se hace porque no estamos seguros de que la persona que opera el script

introduzca correctamente la zona, si se ingresó otra zona de las permitidas la comisión es cero. Instrucción condicional Switch. Esta se usa como sustituto en algunos casos del if anidado, por ser más práctico al aplicarlo en la evaluación de algunas condiciones.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 37

DESARROLLO DE APLICACIONES WEB Sintaxis

Los valores a evaluar, se separan por punto y coma si hay varios, tal como aparece en la sintaxis, también se puede usar el default que nos indica como un sino, que en caso de no seleccionar ninguna de las instrucciones anteriores se ejecutan.

Nota importante: En la sintaxis se observa la instrucción break, esta es muy importante para poder evaluar las opciones uno por uno.

Ejemplo sobre la aplicación de la instrucción switch. En el ejemplo anterior usamos decisiones anidadas para determinar la comisión, ahora usaremos una estructura switch. (condicion4.php)

Switch( variable) { case valor1:

instrucciones; break; case valor2:

instrucciones; break; case valor3:

instrucciones; break; default : instrucciones;]

}

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 38

DESARROLLO DE APLICACIONES WEB

Uso del operador || El operador || (O) se utiliza cuando estamos evaluando dos o más condiciones y queremos que la condición se cumpla cuando una de las condiciones que estamos evaluando sea verdadera. Ejemplo sobre el operador “||”

Ingresar el nombre del cliente, luego la cantidad del producto, precio y tipo de cliente, calcular el subtotal, descuento, impuesto, total a pagar, mostrar los datos. El descuento es del 10% si el cliente es de tipo A o la cantidad de

cualquier producto es mayor a 100 sino es de 5%. (condicion5.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 39

DESARROLLO DE APLICACIONES WEB

Resultado:

Uso del operador Y (&&). El operador && (Y) se utiliza cuando estamos evaluando dos o más condiciones y queremos que la condición se cumpla cuando las dos condiciones que estamos evaluando sean verdaderas.

Ejemplo sobre el operador “&&” Se ingresa un número y se desea saber si dicho número está entre 50 y 100. (condicion6.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 40

DESARROLLO DE APLICACIONES WEB

Resultado:

1. Investigue: ¿Qué es un compilador y depurador de Script? – explique. 2. Mencione sobre otros tipos de variables que se usan, en otros lenguajes de

programación. 3. ¿Qué es conversión de datos? – Explique. 4. Visualice el video: PHP – Estructuras de control y operadores, de la url:

https://www.youtube.com/watch?v=V9pF51PX30E, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 41

DESARROLLO DE APLICACIONES WEB III. ARREGLOS. En esta tarea trataremos las siguientes operaciones: Arreglos – tipos. Operaciones con arreglos. Arreglos multidimensionales. Cálculo de Comisiones.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Arreglos – tipos. Operaciones con arreglos. Arreglos multidimensionales. Cálculo de Comisiones. 3.1. ARREGLOS – TIPOS. Es una Colección de datos del mismo o diferente tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento tendremos de acceder usando un índice para especificar la posición que queremos extraer o modificar su valor. Los tipos pueden ser: 1. Unidimensionales: solo tiene una solo dimensión una fila y una columna. 2. Bidimensionales: tablas o matrices.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 42

DESARROLLO DE APLICACIONES WEB 3. Multidimensionales: de 3 o más dimensiones. 1. Arreglo Unidimensionales: Son aquellos que sólo contienen una dimensión

(un índice).

Declaración:

<Nombre del arreglo>=array(); Para crear un arreglo se hace uso de la función array(). Esta puede tomar de cero a varios parámetros y retorna un arreglo el cual es asignado a una variable con el operado de igualación =. Si la función recibe parámetros, entonces el arreglo será creado con

estos valores. Los arreglos en PHP cambian su tamaño dinámicamente dependiendo la cantidad de datos que tengan, por lo tanto no es necesario establecer un tamaño al momento de su creación. Ejemplo unidimensional: $numero=array(); $numero[0]=34; $numero[1]=67; $numero[2]=18; $numero[3]=90; Con esta declaración estamos creando un arreglo de 4 números enteros.

34 67 18 90 0 1 2 3 Nota: Al igual que en los lenguajes de programación reales, en sintaxis estricta, la base de la dimensión es 0, pero en sintaxis flexible o perfil flexible es base 1. Siempre que nosotros queremos hacer referencia a uno de los elementos del arreglo, tendremos que indicar la posición, con un número entero que este dentro del rango. print "El valor de posicion 2 es:". $numero[2]; //Resultado: 18

Almacenar en un arreglo los datos personales de un empleado y luego mostrarlos en pantalla. (arreglo1.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 43

DESARROLLO DE APLICACIONES WEB

Un arreglo en PHP, puede contener elementos de distintos tipos de datos, es decir, un elemento puede ser un número entero, otro una cadena, otro un número con decimales, etc.

Resultado:

2. Arreglo Bidimensionales: Se les denomina matrices o tablas. Un arreglo

bidimensional es una tabla que tiene líneas y columnas, donde las líneas indican la primera dimensión y las columnas la segunda dimensión.

0 0 1 2 3

1 2 3 4

La tabla que se muestra nos representa un arreglo de 2 dimensiones con 5 líneas y 4 columnas. La referencia a un determinado elemento de la matriz, requiere el empleo de un primero subíndice que indica la fila y el segundo que indica la columna. Ambos subíndices deberán de ser de tipo entero.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 44

DESARROLLO DE APLICACIONES WEB Por ejemplo si quisiéramos guardar el valor de 30 en la línea 4 columna 3 el código sería: $numero[4][3]=30;

Almacenar en un arreglo los datos personales de dos empleados y luego mostrarlos en pantalla. (arreglo2.php)

Cuando la Línea tiene el valor de 0 la Columna toma el valor de 0 esto hace que se puede leer el elemento $empleado[0][0], luego cuando la línea tiene el valor de 1 entonces podemos leer el $empleado[1][0], $empleado[1][1], etc.

Resultado:

3.2. OPERACIONES CON ARREGLOS. Cuando avancemos, profundizaremos más sobre los arreglos, debemos tener en cuenta que uso de sentencias repetitivas es muy importante, porque está totalmente ligada al uso de los arreglos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 45

DESARROLLO DE APLICACIONES WEB Supongamos que no queremos mostrar uno a uno los valores que hay almacenados en un arreglo, sino que buscamos mostrar el contenido completo para ver qué datos contiene, pues entonces usamos las sentencias repetitivas. A partir de aquí entraremos en la parte más divertida de la programación, como son el uso de arreglos y bucles repetitivos.

Ingresar 10 números a un arreglo de 10 elementos y luego mostrar los números.(arreglo3.php)

Resultado:

En este script tendremos que usar un bucle(for…) para que la variable $contador tome un valor de 0..9, para asignar valores al arreglo, luego usaremos otro bucle(for…) para presentar los datos. Cuando guardamos los datos en un arreglo, sus valores son

almacenados en la memoria y no se borran después que se asigna el siguiente número según el valor del contador.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 46

DESARROLLO DE APLICACIONES WEB

Ingresar el nombre de 10 lotes de cajas en un arreglo y el precio en otro arreglo, mostrar al final el total a pagar para cada uno de los lotes. (arreglo4.php) Nota: En cada lote el precio de duplica sobre el anterior.

Resultado:

En este script almacena el nombre del lote y el precio en dos arreglos diferentes el nombre en un arreglos de cadena y el sueldo en un arreglo de tipo entero, primero se ingresa los datos

en el arreglo, a través de un bucle se guardan los datos en la memoria durante que el script funcione y los podemos usar después de ingresados los datos , lo que antes no podíamos hacer pues al ingresar el elemento 10 en la variable

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 47

DESARROLLO DE APLICACIONES WEB solo ese podíamos guardar , es por ello que los cálculos se deben realizar en el mismo bucle.

Crear un arreglo de 5 números enteros, luego mostrar el número mayor. (arreglo5.php)

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 48

DESARROLLO DE APLICACIONES WEB

En este script se determina el número mayor comparando los números que se ingresan, cuando se inicia mayor vale cero pero supongamos que ingresamos en el arreglos 20-12-98-45-79.

Cuando el elemento 0 del arreglo se compara con 20, hay una nueva asignación para mayor que es 20, luego el mayor se compara con 12 pero esta es menor y no se realiza una nueva asignación, ahora el mayor se compara con 98 y si se realiza un nueva asignación para mayor que es 98, después se compra el mayor con 45 y no se realiza una nueva asignación y al final compara el mayor con 79 y no se realiza una nueva asignación.

El Siguiente ejemplo nos muestra como asignar datos a un arreglo de 5 líneas y 4 columnas para luego presentar los datos en la pantalla. (arreglo6.php)

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 49

DESARROLLO DE APLICACIONES WEB

En este script usamos dos variables enteras $fila que se usa para las líneas y $columnas que se usa para las columnas, usamos bucles anidados porque necesitas recorrer por cada línea, todas las columnas, esto sucede así:

Cuando la $fila tiene el valor de 0 la $columna toma el valor de 0 esto hace que se puede leer el elemento $numero[0][0], $numero[0][1], $numero[0][2], $numero[0][3] luego cuando la $fila tiene el valor de 1 entonces la $columna vuelve a iniciar de 0 a 3 haciendo lo mismo 4 veces que es el número de las líneas.

Suma de líneas y columnas de un arreglo Bidimensional. (arreglo7.php)

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 50

DESARROLLO DE APLICACIONES WEB

Suma solo las líneas de un arreglo Bidimensional. (arreglo8.php)

Resultado:

3.3. ARREGLOS MULTIDIMENSIONALES Un arreglo multidimensional es aquel que consta de varias dimensiones de arreglos en la memoria, y utiliza el mismo método de declaración y creación que los arreglos unidimensionales y bidimensionales, y la forma de mandar a llamar a sus diferentes espacios de memoria es la misma, un arreglo en sí, no es limitado por nada, más que por la memoria disponible existente para poder seguir creando más arreglos o espacios de arreglos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 51

DESARROLLO DE APLICACIONES WEB

Nota: Cada elemento del arreglo principal puede ser un arreglo.

Crear un arreglo multidimensional que permita agregar en el primer arreglo los cursos de desarrollo de software y en el segundo arreglo los de redes.(arreglo9.php)

Arreglo1

Arreglo2

[0][2][2]

[0][2][1]

[0][2][0]

[1][0][0] [1][1][0] [1][2][0]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 52

DESARROLLO DE APLICACIONES WEB

Resultado:

3.4. CÁLCULO DE COMISIONES.

Este ejemplo describe la manera de calcular las comisiones que han ganado con las ventas. Los cálculos de este ejemplo están basados en la siguiente tabla. (arreglo10.php)

Ventas Mensuales(Soles) Comisión S/. 0 - S/. 9999 8.0% S/. 10000 - S/. 19999 10.5% S/ 20000 - S/. 39999 12.5% S/. 40000 - + 14.0%

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 53

DESARROLLO DE APLICACIONES WEB Nota: Se puede observar que la tasa de la comisión no es lineal y depende de la cantidad total de ventas del mes. Los empleados que venden más, ganan una comisión más alta.

Resultado:

1. Investigue: ¿Qué es un vector de imágenes? – explique. 2. Mencione sobre Colas y Pilas como arreglos en PHP. 3. Visualice el video: PHP – Herramientas para arreglos, de la url:

https://www.youtube.com/watch?v=leuG9x2iIyc, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 54

DESARROLLO DE APLICACIONES WEB IV. FUNCIONES En esta tarea trataremos las siguientes operaciones: Funciones PHP.

Funciones de usuario.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Funciones PHP. Funciones de usuario.

4.1. FUNCIONES PHP. Aquí veremos cómo trabajar con cadenas, números y fechas en PHP. Son funciones incorporadas de PHP pero, como notas personales aquí reflejo las funciones.

Funciones de cadena. (funcionphp1.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 55

DESARROLLO DE APLICACIONES WEB

Resultado:

Funciones de cadena mostrar el nombre, el apellido paterno y materno de un empleado. (funcionphp2.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 56

DESARROLLO DE APLICACIONES WEB

Resultado:

Funciones matemática. (funcionphp3.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 57

DESARROLLO DE APLICACIONES WEB

Resultado:

Funciones de fecha y hora. (funcionphp4.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 58

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 59

DESARROLLO DE APLICACIONES WEB

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 60

DESARROLLO DE APLICACIONES WEB 4.2. FUNCIONES DE USUARIO. Una función es un subprograma que realiza una tarea específica y que puede ser definido mediante 0, 1 o más parámetros. Tanto en entrada de información a la función y como la devolución de resultados desde la subrutina se realiza mediante parámetros, el cual nos sirve para introducir o modificar información del script PHP principal. Sintaxis: function <nombre_función>([parametro1], [parametro], …..[parametro_n]) {

//Subrutina return [valor_devuelto];

} Ejemplo: <?php //Crear function sumar($n1,$n2) { return $n1 + $n2; } ?>

Las funciones pueden o no tener tipo de retorno. En este caso, esta función si devuelve un valor. Siempre que usemos parámetros estos deben de ser del mismo

tipo datos, esto nos dice que la variable del script , debe de del mismo tipo del parámetro de la función y pasados en el mismo orden en que están colocados en la función.

Elaborar una función que muestre 15 asteriscos en una línea horizontal. (funcionusuario1.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 61

DESARROLLO DE APLICACIONES WEB

En este script usamos una función para mostrar 15 asteriscos, si no lo hubiéramos hecho de esta manera donde se encuentra la instrucción asteriscos; tendríamos que escribir el ciclo, y lo

haríamos dos veces, de la forma en que lo escribimos es más estructurado, pues se divide ese proceso en un subprograma, que cuando necesitamos una línea de 15 asteriscos solo llamamos a la función. Nota: Las funciones sin parámetros se llaman desde el proceso principal simplemente por su nombre sin más argumentos, se tienen que abrir y cerrar paréntesis. En cambio, si el subproceso contiene parámetros, estos si deben especificarse, en este ejemplo se usa una función estática, siempre escribirá 15 asteriscos, ahora lo podemos hacer dinámico usando parámetros para indicar cuantos asteriscos queremos presentar en la línea.

Elaborar una función que muestre 30 asteriscos en una línea horizontal, estableciendo la cantidad con un parámetro. (funcionusuario2.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 62

DESARROLLO DE APLICACIONES WEB

Resultado:

En la línea 8 estamos asignando al parámetro $cantidad la cantidad de 30 asteriscos, esto hace que el ciclo recorra 30 veces, luego más abajo del script en la instrucción mostrar, se le asigna un número como paso del valor de parámetro.

Ingresar la base y el exponente y luego calcular la potencia. (funcionusuario3.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 63

DESARROLLO DE APLICACIONES WEB

Resultado:

En la función los dos datos, $exponente y $base son de tipo entero y se comportan como parámetros de variable, esto porque necesitamos que la función nos devuelva los valores, luego la variable resultado no si se pasa como parámetro de variable debido

a que necesitamos modificar su valor y mostrarlo en el script principal. Nota: Las funciones no se pueden llamar igual que las variables que se declaran en el script.

Ejemplo de planilla, se ingresan el nombre, las ventas y la zona del empleado usando una función, luego se calcular la comisión en base a la zona de trabajo, ESSALUD y total a pagar, luego se

muestran los datos. (funcionusuario4.php) Nota: • Se deberá de usar una función con retorno para los cálculos y para mostrar

de los datos. • Usar un subproceso con retorno para el cálculo del ESSALUD. • Usar un subproceso con retorno para el cálculo de la comisión.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 64

DESARROLLO DE APLICACIONES WEB Función de ingresar. En esta función sin retorno se ingresan los datos, validando que la zona solo sea A, B, C. Función de cálculo. Se calcula la comisión e ESSALUD usando las funciones con retorno declarados anteriormente, luego el total a pagar, algo que debemos de notar es que las ventas y la zona se pasan como parámetros de valor y las demás ESSALUD, comisión y total pagar como parámetros de variable porque necesitamos modificar su valor. Función mostrar. Mostramos los cálculos y pasamos las variables como parámetros de valor, porque solo los necesitamos para mostrar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 65

DESARROLLO DE APLICACIONES WEB

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 66

DESARROLLO DE APLICACIONES WEB

1. Investigue: ¿Qué es una función recursiva? – explique. 2. Mencione sobre Funciones de Manejo de Errores en PHP. 3. ¿Cómo se utilizan las funciones de PHP en JavaScript? – Explique. 4. Visualice el video: PHP – Funciones recursivas, de la url:

https://www.youtube.com/watch?v=7zshhHe8z6E, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 67

DESARROLLO DE APLICACIONES WEB V. FORMULARIOS. En esta tarea trataremos las siguientes operaciones: Formularios - Envió y recuperación de datos.

Trabajando con Formularios.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Formularios - Envío y recuperación de datos. Trabajando con Formularios. 5.1. FORMULARIOS - ENVÍO Y RECUPERACIÓN DE DATOS. Cuando nuestros usuarios ingresan información y luego pulsan el botón enviar de nuestro formulario, la información que contenían sus controles (Como caja de textos, listas, etc.) es enviada a una página web desde donde recuperamos los datos para realizar cálculos o enviarlo a una base de datos. Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de pago. La información del formulario se almacena en variables (Que es el nombre de los controles) que podremos recuperar y utilizar

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 68

DESARROLLO DE APLICACIONES WEB mediante PHP. Las formas de recuperación consiste en usar $_POST, $_GET y $_REQUEST. $_POST : Se debe de utilizar en el formulario el method=”post”, y comúnmente en la propiedad action se coloca el nombre de otra página web. $_GET : Se debe de utilizar en el formulario el method=”get”, y comúnmente en la propiedad action se coloca el nombre de la misma página web. $_REQUEST : Se debe de utilizar en el formulario el method=”post” o “get”, y comúnmente en la propiedad action se coloca el nombre de otra página web o la misma página web es muy parecido a $_POST y $_GET. . Aquí mostraremos algunos ejemplos sencillos, primero usando $_POST.

1. Se establece el método post para enviar datos. 2. Se establece una página web externa, no nos olvidemos que esta tiene que

estar grabado en la misma carpeta. 3. Se establece el nombre del control, que realmente con PHP se transforma

en variable.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 69

DESARROLLO DE APLICACIONES WEB [grabar.php]

Resultado:

Usando $_GET. [conget.php]

1. Se establece el método get para enviar datos. 2. Se establece la misma página web.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 70

DESARROLLO DE APLICACIONES WEB 3. Se establece el nombre del control, que realmente con PHP se transforma

en variable.

Resultado:

5.2. TRABAJANDO CON FORMULARIOS.

Aquí en este ejemplo vamos crear un comprobante de venta de una función de cine. Para ello vamos a utilizar todo lo aprendido anteriormente.

1. Crear la página web con nuestro formulario.(ticket.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 71

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 72

DESARROLLO DE APLICACIONES WEB

Resultado:

2. Luego tenemos que crear otra página web que recibirá todos los datos

enviados desde nuestro formulario.(crearticket.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 73

DESARROLLO DE APLICACIONES WEB

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 74

DESARROLLO DE APLICACIONES WEB Aquí en este ejemplo vamos a crear un comprobante de venta de una función de cine de otra manera usando la instrucción $_GET. 1. Crear la página web con nuestro formulario.(ticket2.php)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 75

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 76

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 77

DESARROLLO DE APLICACIONES WEB

Resultado:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 78

DESARROLLO DE APLICACIONES WEB

1. Investigue: ¿Cuál es la diferencia entre Submit y Button? – explique. 2. Mencione sobre Manejo de correos con formularios en PHP. 3. ¿Cómo se utilizan las funciones de PHP en JavaScript? – Explique. 4. Visualice el video: PHP - Como enviar un Formulario por Correo, de la url:

https://www.youtube.com/watch?v=DL2l55LJ_nY, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 79

DESARROLLO DE APLICACIONES WEB VI. ADMINISTRACIÓN DE BASE DE DATOS CON MYSQL. En esta tarea trataremos las siguientes operaciones: Administrando Bases de Datos con MySQL. Creando un Base de Datos para la Web. Tablas y campos en las Bases de datos. Trabajando con Bases de datos. Consultar: Modificar y Eliminar datos de la Base.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Administrando Bases de Datos con MySQL Creando un Base de Datos para la Web. Tablas y campos en las Bases de datos. Trabajando con Bases de datos. Consultar: Modificar y Eliminar datos de la Base. 6.1. ADMINISTRANDO BASES DE DATOS CON MYSQL. MySQL es un sistema gestor de bases de datos muy conocido y ampliamente usado por su simplicidad y notable rendimiento. Es una opción atractiva tanto para aplicaciones comerciales, como de entretenimiento precisamente por su facilidad de uso y tiempo reducido de puesta en marcha. En sus características vemos que es muy usado para aplicaciones WEB, está muy ligado al PHP, que a menudo aparece en combinación con MYSQL. En aplicaciones web hay baja

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 80

DESARROLLO DE APLICACIONES WEB concurrencia (las transacciones concurrentes no interfieren entre sí) en la modificación de datos y en cambio el entorno es intensivo en la lectura de datos, lo que hace MySQL ideal para este tipo de aplicaciones. Comandos Principales de Mysql:

Comando Descripción

mysql –u usuario –p clave Arranque como usuario.

mysql –h nombre_host –u usuario –p clave En el caso en el que el servidor no se encuentre en otra computadora.

show databases; Mostrar las bases de datos.

select databases(); Mostrar las bases de datos seleccionadas.

show tables; Mostrar las tablas que contiene una base de datos.

use nombre_base; Seleccionar una base de datos.

describe nombre_tabla; Describir la estructura de campos de una tabla..

create database nombre_base; Crear una base de datos.

Creación de una tabla. create [temporary] table [if no exists] nombre_tabla (nombre_campo tipo1 opciones2 cláusulas3, “ “ “ , “ “ “ , [último campo] ); [temporary] --> la tabla existirá mientras exista la conexión con el cliente actual o hasta que se emita la instrucción drop table. [if no exist] --> Si existe la tabla no se crea una nueva. Los apartados para crear tablas son: Generales: null --> admite valores nulos no null --> rechaza dejar el campo en blanco default --> permite establecer un valor por defecto Columnas numéricas: auto_increment --> para generar identificadores únicos o valores en serie. unisgned --> rechazo de valores negativos Cadena: binary --> trata los valores como cadenas binarias (campos char y varchar) Cláusulas3: primary key --> columna indexada para búsqueda rápida. Clave principal, solo puede haber una unique --> crea un índice con valores únicos index, key --> son sinónimos y crean índices que pueden contener valores repetidos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 81

DESARROLLO DE APLICACIONES WEB

Los apartados para crear tablas son: Generales: null --> admite valores nulos no null --> rechaza dejar el campo en blanco default --> permite establecer un valor por defecto Columnas numéricas: auto_increment --> para generar identificadores únicos o valores en serie. unisgned --> rechazo de valores negativos Cadena: binary --> trata los valores como cadenas binarias (campos char y varchar) Cláusulas3: primary key --> columna indexada para búsqueda rápida. Clave principal, solo puede haber una unique --> crea un índice con valores únicos index, key --> son sinónimos y crean índices que pueden contener valores repetidos.

Las opciones de tipo de campo son: tinyint --> 1 byte smallint --> 2 byte mediumint --> 3 byte int --> 4 byte bigint --> 8 byte float --> 4 byte double --> 8 byte decimal --> variable char(n) --> cadena de caracteres de longitud fija varchar(n) --> cadena de caracteres de longitud variables tinyblob --> objeto binario largo (muy pequeño) blob --> objeto binario largo (pequeño) mediumblob --> objeto binario largo (medio) longblob --> objeto binario largo (grande) tinytext --> cadena de texto muy pequeña text --> cadena de texto pequeña mediumtext --> cadena de texto media longtext --> cadena de texto larga enum --> una enumeración set --> un conjunto date --> valor fecha (aaaa-mm-dd) time --> valor de hora (hh-mm-ss) datetime --> valor de fecha y hora timestamp --> valor de lapso de tiempo (aaaammddhhmmss) year --> valor de año

INSERT INTO table_name VALUES (value1,value2,value3,...);

Se utiliza para insertar nuevos registros a una tabla - Forma1

INSERT INTO table_name (column1,column2,column3,...)VALUES (value1,value2,value3,...);

La segunda forma específica tanto los nombres de las columnas como los valores a insertar

INSERT INTO table2 SELECT * FROM table1;

Podemos copiar todas los registros de una tabla a otra ya existente

INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;

O podemos copiar de una tabla a otra, solamente las columnas que queremos

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 82

DESARROLLO DE APLICACIONES WEB

Select : Permite recuperar filas seleccionadas de una o más tablas también pueden utilizarse para recuperar filas calculadas, sin referencia a alguna tabla. Y además nos permite consultar los datos almacenados en una o más tablas de la base de datos SELECT [ALL | DISTINCT ] <nombre_campo> [{,<nombre_campo>}] FROM <nombre_tabla>|<nombre_vista> [{,<nombre_tabla>|<nombre_vista>}] [WHERE <condicion> [{ AND|OR <condicion>}]] [GROUP BY <nombre_campo> [{,<nombre_campo >}]] [HAVING <condicion>[{ AND|OR <condicion>}]] [ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC] [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]] SELECT: Esta palabra clave nos indica que la consulta que vamos a realizar es de selección. ALL: Este nos indica que seleccionaremos todos los valores, generalmente no se especifica, ya que viene por defecto. DISTINCT: Nos indica que queremos seleccionar solo valores distintos. FROM: Indicamos la o las tablas desde donde queremos recuperar los datos, cuando existe más de una tabla a la consulta se le denomina "consulta combinada" o "join", en este tipo de consultas es necesario aplicar una condición de combinación, a través de la consulta WHERE. WHERE: Nos especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta; a su vez, este admite operadores lógicos como AND y OR. GROUP BY: Este nos especifica la agrupación que le vamos a dar a los datos, se usa siempre en combinación de funciones agregadas. HAVING: Nos da una condición que se debe cumplir para los datos, y especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta, su funcionamiento es similar al del WHERE, pero aplicado a un conjunto de resultados devueltos por la consulta. Este deba aplicarse siempre junto a GROUP BY, y los contenidos deben ser referidos a los contenidos en ella. ORDER BY: Presenta el resultado ordenado de las columnas indicadas, el orden se puede presentar de forma ascendente (ASC), el cual generalmente se presenta por defecto o de manera predeterminada; y en forma descendente (DESC).

ALTER: Modificación de la estructura de las tablas, como renombrar la tabla o variar la estructura de la tabla de datos. alter [ignore] table nombre lista_de_acción Nombre: Establece el nombre de la tabla sobre la que deseamos actuar. Lista_de_acción: Establece una o varias acciones a realizar las cuales son. a)ADD INDEX [nombre _ índice][columna _ índice]: Agrega un índice a la tabla basado en la columna especificada. b)ADD PRIMARY KEY [columna _ índice]: Agrega una clave principal. c)ADD UNIQUE [nombre _ índice][columna_ índice]: Agregar un índice de valor único a la tabla en función de la columna especificada. d)ALTER [column] nombre _ columna (set default valor | drop default): Modifica el valor de una columna. e)CHANGE [column] nombre _ columna declaración _ columna: Cambia el nombre y la definición de una columna. f)DROP [column] nombre _ columna: Elimina la columna especificada. g)DROP INDEX nombre_index: elimina el índice de la tabla. h)DROP PRIMARY KEY: elimina la clave principal de la tabla. Si no existe clave principal y si índices con especificación UNIQUE se elimina el primero existente. i)MODIFY [column] declaración _ columna: Cambia la declaración de una columna. j)RENAME [AS] nombre_tabla_nueva: Cambia el nombre de la tabla.

Elimina los registros de una tabla. delete [low_priory] from nombre_tabla [where expresión][limit n]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 83

DESARROLLO DE APLICACIONES WEB

LOW_PRIORY: posterga la petición hasta que ningún usuario este utilizando la tabla. Actualiza los registros de una tabla en bloque.

WHERE expresión: especifica una condición que deben cumplir los registros a borrar, si se omite en la petición se eliminan todos los registros de la tabla. LIMIT n: estable un número máximo de registros a borrar.

Borrado de tablas: elimina una o varias tablas.

DROP DATABASE [if exist] nombre_database Borrado de una base de datos. Elimina la base de datos y todas las tablas que contiene.

show columns from nombre_tabla [from nombre_base-datos][like patrón-búsqueda] Muestra las diferentes columnas de una tabla

show grants for nombre_usuario Información sobre usuarios.

6.2. CREANDO UN BASE DE DATOS PARA LA WEB.

Aquí en este ejemplo vamos a crear la base de datos “BDFacturacion”, dicha base de datos la vamos a utilizar más adelante en el tema sobre conexión a base de datos con PHP.

1. Iniciar el servidor mysql.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 84

DESARROLLO DE APLICACIONES WEB

2. Ingresar la clave (Establecida en el tema de instalación de servicios).

3. Listo bienvenido al servidor mysql, ahora vamos a crear la base de datos: “BDFacturacion”.

Nota: Antes de crear la base de datos vamos a preguntar si ya fue creado, ello evitaría que nos muestre un mensaje de error, y eso es lo que debemos evitar.

Más adelante las sentencias SQL van hacer más complicadas por ello te muestro otra manera de ejecutar las sentencias.

• Abrir el bloc de notas y escribe la sentencia sql luego copia y pega dentro del

servidor mysql.

Practico no, espero que lo tomes en cuenta más adelante.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 85

DESARROLLO DE APLICACIONES WEB 4. Bien luego de crear la base de datos, verificamos si existe:

6.3. TABLAS Y CAMPOS EN LAS BASES DE DATOS. 1. Activar la base de datos “BDFacturación”.

2. Crear las tablas: create table clientes( codcli char(10), nombre varchar(30), apellido varchar(30), dni double, telefono double, direccion varchar(50), email varchar(50), foto varchar(100)); create table productos( codpro char(10), nombre varchar(30), descripcion varchar(100), pu decimal(8,2), stock double, foto varchar(30)); create table facturas( nrofac char(10) not null, codcli char(10) not null,

create table detallefacturas( nrofac char(10) not null, codpro char(6) not null, cant int, importe decimal(8,2)); create table personal( codper char(10), nombre varchar(30), apellido varchar(30), dni double, telefono double, direccion varchar(50), email varchar(50), foto varchar(100), codusuario char(10)); create table usuarios( codusuario char(10), codestado char(10),

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 86

DESARROLLO DE APLICACIONES WEB

subtotal decimal(8,2) , igv decimal(8,2), total decimal(8,2), estado int default 0, fechaemi date, fechacan date, codper char(10));

usuario char(50), clave char(50)); create table estadousuarios (codestado char(10), descripcion char(50));

3. Mostrar las tablas creadas.

4. Mostrar la estructura de la tabla.

5. Establecer las claves primarias a las tablas maestras. alter table clientes add primary key (codcli); alter table Productos add primary key (codpro); alter table Facturas add primary key (nrofac);

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 87

DESARROLLO DE APLICACIONES WEB

alter table personal add primary key (codper); alter table usuarios add primary key (codusuario); alter table estadousuarios add primary key (codestado);

6. Verificar si la tabla tiene clave primaria.

7. Relacionar las tablas para compartir información.

alter table detallefacturas add constraint R_DETA_FAC foreign key (nrofac) references facturas (nrofac) on delete cascade on update cascade; alter table detallefacturas add constraint R_DETA_PRO foreign key (codpro) references productos (codpro)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 88

DESARROLLO DE APLICACIONES WEB

on delete cascade on update cascade; alter table facturas add constraint R_FAC_PER foreign key (codper) references personal(codper) on delete cascade on update cascade; alter table personal add constraint R_PER_USU foreign key (codusuario) references usuarios(codusuario) on delete cascade on update cascade; alter table usuarios add constraint R_USU_ESTADO foreign key (codestado) references estadousuarios(codestado) on delete cascade on update cascade;

8. Verificar si la tabla se encuentra relacionada.

6.4. TRABAJANDO CON BASES DE DATOS. Ahora a trabajar con la base de datos “BDFacturacion”, agregar los registros en las tablas relacionadas para ello tenemos que respetar las jerarquías, es decir primero insertaremos registros en las tablas maestras.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 89

DESARROLLO DE APLICACIONES WEB Nota: También utilizaremos funciones y procedimientos almacenados para generar los códigos porque no nos olvidemos que son claves primarias es decir valores únicos.

1. Activar la base de datos “BDFacturación”.

2. Insertar registros. insert into clientes values ("C0001","Gabriela","Saenz",45125252,3212121,"Av.Los Rosales #897 - Lince","[email protected]","gabriela.jpg"), ("C0002","Angelina","Ascona",77778888,1112233,"Jr. Las Lomas #765 -La molina","[email protected]","angelina.jpg"); insert into productos values ("P0001","Monitor","Pantalla lcd",300.00,5,"monitor.jpg"), ("P0002","Memoria","kingston",15.00,10,"memoria.jpg"), ("P0003","Impresora","Epson",200.00,6,"impresora.jpg"), ("P0004","Estabilizador","Estabilizador altron",30.00,8,"estabilizador.jpg"), ("P0005","Scanner","HP",190.00,10,"scanner.jpg"); insert into estadousuarios values ("E0001","ACTIVO"), ("E0002","INACTIVO"), ("E0003","BLOQUEADO"),("E0004","TEMPORAL"); insert into usuarios values ("U0001","E0001","admin",des_encrypt("admin123")), ("U0002","E0001","supervisor",des_encrypt("super123")), ("U0003","E0001","invitado",des_encrypt("invitado123")); insert into personal values

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 90

DESARROLLO DE APLICACIONES WEB

("R0001","Manuel","Ramirez",65125252,5212121,"Av.Las Flores #897 - Comas","[email protected]","manuel.jpg","U0002"), ("R0002","Pedro","Morales",72378888,3112233,"Jr. Las Rosas #765 - Surco","[email protected]","pedro.jpg","U0002");

3. Mostrar los registros de la tabla: Clientes

4. Mostrar los registros de la tabla: Productos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 91

DESARROLLO DE APLICACIONES WEB 5. Mostrar los registros de la tabla: Usuarios.

6. Mostrar los registros de la tabla: Personal.

Ahora vamos a insertar datos en las tablas Facturas y DetalleFacturas, no nos olvidemos que los datos se obtendrán de otras tablas para realizar cálculos, por ello la necesidad de crear procedimiento almacenados y funciones.

Nota: Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL o una referencia a un método. Los procedimientos se asemejan a la codificación de otros lenguajes de programación.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 92

DESARROLLO DE APLICACIONES WEB 7. Manos a la obra, activar la base de datos: “BDFacturación”.

8. Crear los siguientes procedimientos: delimiter // create procedure insertarclientes ( codcli char(10), nomcli varchar(30), apecli varchar(30), dnicli double, telcli double, direccli varchar(50), emailcli varchar(50), fotocli varchar(100)) begin insert into Clientes values (codcli,nomcli,apecli,dnicli,telcli,direccli,emailcli,fotocli); end; // delimiter // create procedure insertarproductos ( codpro char(10), nombrePro varchar(30), descripPro varchar(100), puPro decimal(8,2), stockPro double, fotoPro varchar(30))

Declarar Parámetros

Instrucciones

Usar múltiples líneas - Inicio

Usar múltiples líneas - Fin

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 93

DESARROLLO DE APLICACIONES WEB

Begin insert into Productos values (codpro,nombrePro,descripPro,puPro,stockPro,fotoPro); End; // delimiter // create procedure insertarfactura ( nrofacF char(10), codcliF char(10), subtotalF decimal(8,2), igvF decimal(8,2), totalF decimal(8,2), estadoF int, fechaemiF date, fechacanF date, codper char(10)) Begin insert into facturas values

(nrofacF,codcliF,subtotalF,igvF,totalF,estadoF, fechaemiF,fechacanF,codper);

End; // delimiter // create procedure insertarDF ( nrofac char(10), codpro char(6), cant int, importe decimal(8,2))

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 94

DESARROLLO DE APLICACIONES WEB

Begin insert into DetalleFacturas values (nrofac, codpro,cant,importe); End; // delimiter // create procedure generarcodigo ( nomtabla varchar(50)) -- Define un parámetro -- Inicio begin -- Declarar variables declare ultcod varchar(20); declare total int; declare ceros int; declare opcion int; declare cod varchar(20); declare nuevo char(10); -- Asigna un valor, el último código de la tabla set ultcod=(select ultimocodigo from auxiliar where tabla=nomtabla); -- Asigna un valor, el total de registros de la tabla auxiliar set opcion = (select count(*) from auxiliar where tabla=nomtabla); -- Evalua si existe en nombre de la tabla if opcion > 0 then -- Asigna un valor, se elimina los ceros y se incrementa la variable set total = cast(substring(ultcod,2,length(ultcod)) as unsigned) + 1; -- Obtiene el total de ceros del código set ceros = length(ultcod) - length(total)-1; -- Se genera el siguiente código set nuevo = concat(left(ultcod,1),repeat("0",ceros),total); -- Se actualiza la tabla auxiliar con el nuevo código update auxiliar set ultimocodigo=nuevo where tabla=nomtabla; end if; -- Fin end; //

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 95

DESARROLLO DE APLICACIONES WEB

delimiter // create function darcodigo ( nomtabla varchar(20)) -- Define un parámetro returns varchar(20) begin -- Inicio -- Declara una variable declare cod char(10); -- Extrae el ultimo código de la tabla especificada -- y lo asigna a la variable cod select ultimocodigo into cod from auxiliar where tabla=nomtabla; -- Retorna la variable cod return cod; -- Fin end; //

9. Ahora vamos a probar los proc. Almacenados y las funciones. a. Crear la siguiente tabla:

delimiter // create table auxiliar ( tabla varchar(50), ultimocodigo varchar(50) );//

b. Insertar los siguientes registros. delimiter // insert into auxiliar values ("clientes","C0002"), ("usuarios","U0003"), ("productos","P0005"), ("facturas","F0000"), ("personal","R0002"); // Nota: Como observan esta tabla maestra es muy importante para generar código, porque ella siempre tendrá actualizado el nombre de la tabla y

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 96

DESARROLLO DE APLICACIONES WEB

cuál es su último código con ello validamos que los códigos de las tablas no se repitan. Deberían empezar en cero, pero no nos olvidemos que ya habíamos insertado registros en dichas tablas.

c. Ejecutar el procedimiento almacenado “generarcodigo”.

d. El código de la tabla clientes ya se incrementó en uno.

e. Bien ahora lo que haremos en ejecutar el proc. Almacenado “insertarclientes”.

f. Mostrar los registros de la tabla clientes.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 97

DESARROLLO DE APLICACIONES WEB

g. Generar facturas con sus respectivos detalles. Generar código:

Insertar registro en la tabla factura:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 98

DESARROLLO DE APLICACIONES WEB

Insertar registros en la tabla detallefactura:

6.5. MODIFICAR Y ELIMINAR DATOS DE LA BASE. En esta operación realizaremos consultas a las tablas de la base de datos desde una forma simple y avanzada, usaremos para ello la sentencia sql select. 1. Activar la base de datos “BDFacturacion”.

2. Mostrar los registros de todas las tablas de la base de datos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 99

DESARROLLO DE APLICACIONES WEB

3. Ahora vamos a trabajar con múltiples tablas. Mostrar las facturas con su respectivo vendedor.

Mostrar los detalles de facturas con su respectivo nombre de producto.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 100

DESARROLLO DE APLICACIONES WEB

Mostrar el personal con su respectivo usuario y clave.

Mostrar todos los usuarios con su respectivo estado.

Mostrar todas las facturas con sus respectivos clientes y el personal con su respectivo usuario.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 101

DESARROLLO DE APLICACIONES WEB 4. Eliminar todos los registros de la tabla clientes.

5. Actualizar la tabla auxiliar cuyo valor del ultimocodigo será “C0000” de la tabla clientes.

6. Agregar 2 registros en la tabla clientes.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 102

DESARROLLO DE APLICACIONES WEB 7. Mostrar los registros de la tabla clientes.

1. Investigue: ¿Qué son disparadores en Mysql? – explique. 2. Mencione sobre Herramientas Visuales para Mysql. 3. ¿Cómo se utilizan las funciones incorporadas en Mysql? – Explique. 4. Visualice el video: MySQL Workbench administrador de BD, de la url:

https://www.youtube.com/watch?v=Ol99GsCmQ8s, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 103

DESARROLLO DE APLICACIONES WEB VII. CONECTIVIDAD A MYSQL DESDE PHP. En esta tarea trataremos las siguientes operaciones: Acceder a la base de datos MySQL. Añadir información a la base de datos. Planificando un proyecto Web. Añadir, borrar y compartir marcadores en la aplicación.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web.

ORDEN DE EJECUCIÓN: Acceder a la base de datos MySQL. Añadir información a la base de datos. Planificando un proyecto Web. Añadir, borrar y compartir marcadores en la aplicación. 7.1. ACCEDER A LA BASE DE DATOS MySQL.

A partir de aquí en este ejemplo vamos a crear un proyecto web completo con conexión a la base de datos “BDFacturacion.

1. Crear el sitio web : “Proyecto Facturación”.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 104

DESARROLLO DE APLICACIONES WEB

2. Crear una página web PHP para conectar a la base de datos.

[conexion.php]

3. Luego vamos a probar la conexión.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 105

DESARROLLO DE APLICACIONES WEB

Resultado:

7.2. AÑADIR INFORMACIÓN A LA BASE DE DATOS. 4. Crear un formulario para agregar nuevo clientes.

[formularioClientes.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 106

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 107

DESARROLLO DE APLICACIONES WEB

5. Ahora crear la página PHP, para recuperar los datos y enviar los datos a la tabla clientes.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 108

DESARROLLO DE APLICACIONES WEB

Resultado:

7.3. PLANIFICANDO UN PROYECTO WEB.

Proyecto Web

2.- Analisis de sitios

similares

3.- Se define la estructura del

sitio

4.- Se diseña un prototipo

general del sitio

5.- Se pone a prueba el prototipo

6.- Se concluye el diseño final

1.- Definición del Problema

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 109

DESARROLLO DE APLICACIONES WEB 1. Definición del Problema: Se alinea

los objetivos específicos y además se definen los posibles sitios para analizar.

2. Análisis de sitios similares:

Mediante un análisis se identifican aspectos positivos para considerar en el diseño y aspectos negativos para no cometerlos.

3. Se defina la estructura del Sitio: La

arquitectura de información ayuda a crear una estructura de contenidos y secciones en donde los usuarios pueden navegar de manera intuitiva, igualmente es la planificación de todo lo que tendrá el sitio.

4. Se diseña un prototipo general del sitio: Se define como se verá el sitio con sus contenidos y secciones. Se diseña a manera de prototipo la interface gráfica del sitio y se publica una versión de prueba del sitio.

5. Se pone a prueba el prototipo: A partir del prototipo planteado se hacen pruebas de usabilidad con usuarios reales para identificar posibles problemas y resolverlos y se publica una versión de prueba del sitio mejorado.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 110

DESARROLLO DE APLICACIONES WEB

Se concluye el diseño final: El sitio está listo para ser publicado oficialmente.

7.4. AÑADIR, BORRAR Y COMPARTIR MARCADORES EN LA APLICACIÓN.

En este ejemplo vamos a crear un formulario de mantenimiento de facturas.

1. Tenemos que verificar que este creado la tabla y los siguientes procedimientos almacenados.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 111

DESARROLLO DE APLICACIONES WEB 2. Crear el formulario de factura.

[formularioFactura.php]

<HTML> 1 <HEAD> 2 <TITLE> ++ Factura ++ </TITLE> 3 </HEAD> 4 <BODY bgproperties="fixed"> 5 6 <?php 7 //Activar variable globales 8 session_start(); 9 // Incluir el archivo de conexión 10 include("conexion.php"); 11 //Almacenar la conexión en una variable 12 $c=conectarMysql("localhost","BDFacturacion","root","mysql"); 13 14 ?> 15 16 <br> 17 18 <table border="1" align="center" width="100%" bordercolor="lightblue"> 19 <caption align="left"> 20 <font size="5"><b>Factura</b></font> 21 </caption> 22 <tr> 23 <Form name="frmNF3" method="post" Action="grabarFactura.php"> 24 25 <td width="35%" colspan="4">Codigo : 26 <input name="tbCodigo" type="text" size="10" 27 value="<?php print $codigo; ?>" readonly > 28 29 <tr> 30 <td colspan="4">Nombre : <input name="tbNombre" type="text" size="40" 31 value="<?php print $nombre." ".$apellido; ?>" readonly > 32 33 <tr> 34

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 112

DESARROLLO DE APLICACIONES WEB <td colspan="4"><hr color="#FFCC00" size="5"> 35 <tr> 36 <tr> 37 <td colspan="4" > 38 <table border="1" width="100%" bordercolor="#FFCC00" 39 cellspacing="0" align="center" > 40 41 <tr bgcolor="#009900" align="center"> 42 <td><font color="#FFFFFF"><b>Codigo</b></font> 43 <td><font color="#FFFFFF"><b>Nombre</b></font> 44 <td><font color="#FFFFFF"><b>Descripcion</b></font> 45 <td><font color="#FFFFFF"><b>Cantidad</b></font> 46 <td><font color="#FFFFFF"><b>Importe</b></font><td> 47 <font color="#FFFFFF"> 48 49 <b>Sub Total</b></font> 50 <?php 51 // Realizar una consulta de los 52 // registros de la tabla 53 $datos=mysql_query("select * from temporalDF"); 54 // Mostrar el total de registros 55 $Cant=mysql_num_rows($datos); 56 //Evualuar si existe registros 57 if($Cant>=1) 58 { // Crear un bucle para mostrar los datos 59 for($i=0;$i<$Cant;$i++) 60 { 61 //Mostrar los datos en una tabla 62 print "<tr><td align='center'><input name='CodigoPro' 63 type='submit' style='cursor:hand' 64 value='".mysql_result($datos,$i,0)."'>"; 65 // Obtener los valores de los campos 66 print "<td>".mysql_result($datos,$i,1).""; 67 print "<td>".mysql_result($datos,$i,2).""; 68 print "<td align='center'>".mysql_result($datos,$i,3).""; 69 print "<td align='center'>".mysql_result($datos,$i,4).""; 70 print "<td align='center'>" 71 .(mysql_result($datos,$i,3))*(mysql_result($datos,$i,4)).""; 72 73 } 74 } 75 ?> 76 </table> 77 <tr> 78 <td colspan="4" align="right" bgcolor="#FFCC00"> 79 80 <?php 81 // Declarar una constante 82 $SubTotal=0; 83 // Crear un bucle para acumular los importes 84 for($i=0;$i<$Cant;$i++) 85 { 86 $SubTotal += (mysql_result($datos,$i,3))* 87 (mysql_result($datos,$i,4)); 88 } 89 // Declarar una constante 90 $igv=0.18; 91 // Calcular 92

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 113

DESARROLLO DE APLICACIONES WEB $calculo = $SubTotal * $igv; 93 94 $total = $calculo + $SubTotal; 95 96 print "Sub Total => S/ <font color='green'> 97 98 <b> ".$SubTotal."</b></font> IGV => 99 <font color='green'><b>".$calculo."</b> 100 </font> Total => S/ <font color='green'> 101 102 <b>".$total."</b></font>"; 103 104 // Almacenar los datos en variables globales 105 $_SESSION["subTotal"]=$SubTotal; 106 $_SESSION["IGV"]=$calculo; 107 $_SESSION["Total"]=$total; 108 //Inicializar 109 $SubTotal=0; 110 $igv=0; 111 $total=0; 112 ?> 113 <tr> 114 <td> 115 <input name="btnGrabarNF" type="submit" value="Grabar Factura" 116 style="cursor:hand" > 117 118 </form> 119 </td> 120 <td> 121 <Form name="frmNF1" method="Post" Action="insertarClientes.php"> 122 <input name="btnAgregarCli" type="submit" value="Agregar Cliente" 123 style="cursor:hand"> 124 125 </Form> 126 </td> 127 <td> 128 <Form name="frmNF2" method="Post" Action="agregarProductos.php"> 129 <input name="btnAgregarPro" type="submit" value="Agregar Producto" 130 style="cursor:hand"> 131 </form> 132 </td> 133 </table> 134 135 </BODY> 136 </HTML>137 3. Crear el formulario para Insertar Cliente.

[insertarClientes.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 114

DESARROLLO DE APLICACIONES WEB

<HTML> 1 <HEAD> 2 <TITLE> ++ Factura ++ </TITLE> 3 </HEAD> 4 <BODY bgproperties="fixed"> 5 6 <?php 7 //Activar variable globales 8 session_start(); 9 // Incluir el archivo de conexión 10 include("conexion.php"); 11 //Almacenar la conexión en una variable 12 $c=conectarMysql("localhost","BDFacturacion","root","mysql"); 13 14 ?> 15 16 <br> 17 18 <table border="1" align="center" width="100%" bordercolor="lightblue"> 19 <caption align="left"> 20 <font size="5"><b>Factura</b></font> 21 </caption> 22 <tr> 23 <Form name="frmNF3" method="post" Action="grabarFactura.php"> 24 25 <td width="35%" colspan="4">Codigo : 26 <input name="tbCodigo" type="text" size="10" 27 value="<?php print $codigo; ?>" readonly > 28 29 <tr> 30 <td colspan="4">Nombre : <input name="tbNombre" type="text" size="40" 31 value="<?php print $nombre." ".$apellido; ?>" readonly > 32 33 <tr> 34 <td colspan="4"><hr color="#FFCC00" size="5"> 35 <tr> 36 <tr> 37 <td colspan="4" > 38 <table border="1" width="100%" bordercolor="#FFCC00" 39 cellspacing="0" align="center" > 40 41 <tr bgcolor="#009900" align="center"> 42

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 115

DESARROLLO DE APLICACIONES WEB <td><font color="#FFFFFF"><b>Codigo</b></font> 43 <td><font color="#FFFFFF"><b>Nombre</b></font> 44 <td><font color="#FFFFFF"><b>Descripcion</b></font> 45 <td><font color="#FFFFFF"><b>Cantidad</b></font> 46 <td><font color="#FFFFFF"><b>Importe</b></font><td> 47 <font color="#FFFFFF"> 48 49 <b>Sub Total</b></font> 50 <?php 51 // Realizar una consulta de los 52 // registros de la tabla 53 $datos=mysql_query("select * from temporalDF"); 54 // Mostrar el total de registros 55 $Cant=mysql_num_rows($datos); 56 //Evualuar si existe registros 57 if($Cant>=1) 58 { // Crear un bucle para mostrar los datos 59 for($i=0;$i<$Cant;$i++) 60 { 61 //Mostrar los datos en una tabla 62 print "<tr><td align='center'><input name='CodigoPro' 63 type='submit' style='cursor:hand' 64 value='".mysql_result($datos,$i,0)."'>"; 65 // Obtener los valores de los campos 66 print "<td>".mysql_result($datos,$i,1).""; 67 print "<td>".mysql_result($datos,$i,2).""; 68 print "<td align='center'>".mysql_result($datos,$i,3).""; 69 print "<td align='center'>".mysql_result($datos,$i,4).""; 70 print "<td align='center'>" 71 .(mysql_result($datos,$i,3))*(mysql_result($datos,$i,4)).""; 72 73 } 74 } 75 ?> 76 </table> 77 <tr> 78 <td colspan="4" align="right" bgcolor="#FFCC00"> 79 80 <?php 81 // Declarar una constante 82 $SubTotal=0; 83 // Crear un bucle para acumular los importes 84 for($i=0;$i<$Cant;$i++) 85 { 86 $SubTotal += (mysql_result($datos,$i,3))* 87 (mysql_result($datos,$i,4)); 88 } 89 // Declarar una constante 90 $igv=0.18; 91 // Calcular 92 $calculo = $SubTotal * $igv; 93 94 $total = $calculo + $SubTotal; 95 96 print "Sub Total => S/ <font color='green'> 97 98 <b> ".$SubTotal."</b></font> IGV => 99 <font color='green'><b>".$calculo."</b> 100

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 116

DESARROLLO DE APLICACIONES WEB </font> Total => S/ <font color='green'> 101 102 <b>".$total."</b></font>"; 103 104 // Almacenar los datos en variables globales 105 $_SESSION["subTotal"]=$SubTotal; 106 $_SESSION["IGV"]=$calculo; 107 $_SESSION["Total"]=$total; 108 //Inicializar 109 $SubTotal=0; 110 $igv=0; 111 $total=0; 112 ?> 113 <tr> 114 <td> 115 <input name="btnGrabarNF" type="submit" value="Grabar Factura" 116 style="cursor:hand" > 117 118 </form> 119 </td> 120 <td> 121 <Form name="frmNF1" method="Post" Action="insertarClientes.php"> 122 <input name="btnAgregarCli" type="submit" value="Agregar Cliente" 123 style="cursor:hand"> 124 125 </Form> 126 </td> 127 <td> 128 <Form name="frmNF2" method="Post" Action="agregarProductos.php"> 129 <input name="btnAgregarPro" type="submit" value="Agregar Producto" 130 style="cursor:hand"> 131 </form> 132 </td> 133 </table> 134 135 </BODY> 136 </HTML>137

4. Crear el formulario para Insertar Productos.

[insertarProductos.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 117

DESARROLLO DE APLICACIONES WEB <?php 1 // Incluir el archivo de conexión 2 include("conexion.php"); 3 //Almacenar la conexión en una variable 4 $c=conectarMysql("localhost","BDFacturacion","root","mysql"); 5 // Evaluar si el boton del formulario 6 // esta activo 7 if(!isset($btnAgregar)) 8 { 9 ?> 10 11 <body link="blue" alink="blue" vlink="blue" bgproperties="fixed"> 12 <h1>Productos</h1> 13 14 <?php 15 // Realizar una consulta de los 16 // registros de la tabla 17 $datos=mysql_query("Select * from Productos"); 18 // Mostrar el total de registros 19 $Cantidad=mysql_num_rows($datos); 20 //Evualuar si existe registros 21 if($Cantidad >= 1) 22 { // Crear un bucle para mostrar los datos 23 for($i=0;$i<$Cantidad;$i++) 24 { 25 print "<form name='frm' method='post' 26 action='agregarProductos.php'>"; 27 28 print "<p>&nbsp;<p><table border='1' 29 align='center' bordercolor='lightblue'>"; 30 // Obtener los valores de los campos 31 print "<td> Codigo"; 32 print "<td ><input type='text' name='codigo' 33 readonly value='".mysql_result($datos,$i,0)."'>"; 34 35 print "<tr>"; 36 print "<td> Nombre"; 37 38 print "<td><input type='text' name='nombre' readonly 39 value='".mysql_result($datos,$i,1)."'>"; 40 41 print "<tr>"; 42 print "<td> Descripcion"; 43 print "<td><input type='text' name='descrip' readonly 44 value='".mysql_result($datos,$i,2)."'>"; 45 print "<tr>"; 46 print "<td> Precio"; 47 print "<td><input type='text' name='precio' readonly 48 value='".mysql_result($datos,$i,3)."'>"; 49 print "<tr>"; 50 print "<td>Seleccione la cantidad:"; 51 print "<td>"; 52 $CantPro=mysql_result($datos,$i,4); 53 print "<select name='CantidadPro' width='30'>"; 54 // Crear un bucle para mostrar 55 // la cantida de Stock en el combobox 56 for($c=1;$c<=$CantPro;$c++) 57 { 58

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 118

DESARROLLO DE APLICACIONES WEB print "<option value='$c'>&nbsp;&nbsp; $c &nbsp;&nbsp;"; 59 } 60 print "</select>"; 61 print "<tr>"; 62 print "<td colspan='2' align='center'><input name='btnAgregar' 63 type='submit' value='Agregar a la Factura' 64 style='cursor:hand'>"; 65 66 print "</table>"; 67 print "</form>"; 68 } 69 } 70 else 71 { 72 print "No hay productos..."; 73 } 74 ?> 75 <?php 76 } 77 else 78 { 79 print "<BODY link='blue' alink='blue' vlink='blue'>"; 80 // Insertar datos en la tabla 81 mysql_query("insert into temporalDF values 82 ('$codigo','$nombre','$descrip',$CantidadPro,$precio)"); 83 // Redirecciona en forma automatica 84 header("location: formularioFactura.php"); 85 } 86 ?> 87 88 89

5. Crear la página web Grabar Factura.

[grabarFactura.php]

<HTML> 1 <HEAD> 2 <TITLE> ++ Grabar Factura ++ </TITLE> 3 </HEAD> 4 <BODY> 5 <?php 6 //Activar variable globales 7 session_start(); 8 // Incluir el archivo de conexión 9 include("conexion.php"); 10

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 119

DESARROLLO DE APLICACIONES WEB //Almacenar la conexión en una variable 11 $c=conectarMysql("localhost","BDFacturacion","root","mysql"); 12 13 $cadsql ="call generarcodigo('facturas')"; 14 // Ejecutar le proc. almacenado para generar código 15 mysql_query($cadsql,$c); 16 // Llamar a la función darcodigo, para recuperar datos de la 17 // tabla auxiliar. 18 $datos=mysql_query("select darcodigo('facturas')"); 19 // Extraer el valor de la fila 0 y la columna 0 20 $CodigoFactura=mysql_result($datos,0,0); 21 // Asigna los valores de la variables globales 22 $SubTotal=$_SESSION["subTotal"]; 23 $igv=$_SESSION["IGV"]; 24 $total=$_SESSION["Total"]; 25 $fecha=date("Y-m-d"); 26 27 $cadsql="call insertarFactura('$CodigoFactura','$tbCodigo', 28 $SubTotal,$igv,$total,1,'$fecha','$fecha','R0001')"; 29 // Ejecuta el proc. almacenado 30 mysql_query($cadsql); 31 // Realizar una consulta de los 32 // registros de la tabla 33 $resultado=mysql_query("select * from temporalDF"); 34 // Mostrar el total de registros 35 $cantFilas=mysql_num_rows($resultado); 36 // Crear un bucle para mostrar los datos 37 for($i=0;$i<$cantFilas;$i++) 38 { 39 // Obtener los valores de los campos 40 $cod=mysql_result($resultado,$i,0); 41 $nom=mysql_result($resultado,$i,1); 42 $desc=mysql_result($resultado,$i,2); 43 $cant=mysql_result($resultado,$i,3); 44 $imp=mysql_result($resultado,$i,4); 45 // Ejecuta el proc. almacenado 46 $insertDF="call insertarDF('$CodigoFactura','$cod',$cant,$imp)"; 47 mysql_query($insertDF); 48 } 49 // Elimina registros 50 mysql_query("delete from temporalDF"); 51 52 ?> 53 <h1>Productos Comprados...</h1><p> 54 <?php 55 56 // Muestra los valores de las variables privadas 57 print "Cliente : ".$tbNombre."<p>"; 58 print "Sub total : ".$SubTotal."<p>"; 59 print "IGV : ".$igv."<p>"; 60 print "Total : ".$total."<p>"; 61 62 print "Factura Creada Ok...."; 63 ?> 64 </BODY> 65 </HTML> 66 67

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 120

DESARROLLO DE APLICACIONES WEB

1. Investigue: ¿Cuál es la diferencia entre mysql_result y mysqli->query? 2. Mencione sobre funciones de base de datos en PHP. 3. ¿Cómo se utilizan los procedimientos almacenados de Mysql en PHP?

Explique. 4. Visualice el video: PHP - Administración Mysql cpanel, de la url:

https://www.youtube.com/watch?v=nopQiZ3ArX4, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 121

DESARROLLO DE APLICACIONES WEB VIII. CONTROL DE SESIONES. En esta tarea trataremos las siguientes operaciones: Uso de sesiones de control en PHP.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Uso de sesiones de control en PHP. 8.1. USO DE SESIONES DE CONTROL EN PHP.

En este ejemplo, vamos a crear sesiones para poder usarlas en otras páginas separadas, hasta que se acabe la sesión del usuario, generalmente cuando cierre el navegador.

1. Crear la base de datos: “BDCine”.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 122

DESARROLLO DE APLICACIONES WEB

2. Crear un formulario de Acceso: [formularioacceso.php]

1 <html> <head> 2

<title>+++ Acceso a la Intranet +++</title>

3 </head>

4 <body bgcolor=#FFFF99>

5

<FONT FACE='verdana'>

6

<form action="verificardatos.php" method="POST" >

7

<table align="center" width="350" cellspacing="2"

8

cellpadding="2" border="1">

9

<tr>

10

<td align="right"><b>Ingrese Usuario :</td><td> 11

<input type="Text" name="txtusuario" size="18"

12

maxlength="50"></td>

13

</tr>

14

<tr>

15

<tr>

16

<td align="right"><b>Ingrese Clave :</td>

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 123

DESARROLLO DE APLICACIONES WEB

17

<td><input type="password" name="txtclave" 18

size="18" maxlength="50"></td>

19

</tr>

20

<tr>

21

<td colspan="2" align="center"> 22

<input type="Submit" value="Ingresar Intranet">

23

</td>

24

</tr>

25

</table>

26

</form>

27

</font>

28 </body>

29 </html> 3. Crear una página PHP para verificar los datos: [verificardatos.php]

1 <?php 2 // Establecer conexión. 3 $con = mysql_connect("localhost","root","mysql"); 4 //Seleccionar la base de datos. 5 mysql_select_db("bdcine",$con); 6 //Sentencia sql para buscar un usuario 7 $usuario=$_POST["txtusuario"]; 8 $clave=$_POST["txtclave"]; 9 // Cadena sql

10 $cadsql = "SELECT * FROM acceso WHERE usuario='$usuario' 11 and clave=des_encrypt('$clave')"; 12 //Ejecutar la sentencia sql 13 $datos = mysql_query($cadsql,$con); 14 //Verificamos si el usuario y clave son validos 15 //si la ejecución de la sentencia SQL nos da algún resultado 16 //si existe esa combinación usuario/clave 17 if (mysql_num_rows($datos)!=0) 18 { 19

//usuario y clave válidos

20

//definir una sesion y guardar datos 21

session_start();

22

session_register("autorizar"); 23

$autorizar = "SI";

24

header ("Location: ingresointranet.php"); 25 } 26 else 27 { 28

//si no existe reenviar otra vez hacia el acceso.

29

header("Location: error.php?errorusuario=si");

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 124

DESARROLLO DE APLICACIONES WEB 30 } 31 // Actualiza los registros 32 mysql_free_result($datos); 33 // Cerrar conexión 34 mysql_close($con); 35 ?>

4. Crear una página PHP para permitir el ingreso: [ingresointranet.php]

1 <?php 2 // Incluir el siguiente archivo 3 // en la página web 4 include ("iniciarsesion.php"); 5 ?> 6 <html> 7 <head> 8 <title>++ Ingreso ++</title> 9 </head>

10 <body bgcolor=#FFFF99> 11 <FONT FACE='verdana'> 12 <h1> ++++ Bienvenidos a la intranet ++++ </h1> 13 <br><br><br><br><br> 14 <a href="cerrarsesion.php">Salir</a> 15 </font> 16 </body> 17 </html>

5. Crear una página PHP para permitir el ingreso: [iniciarsesion.php]

1 <?php 2 //iniciar la sesión 3 session_start(); 4 //Comprobar que el usuario este autentificado. 5 if ($_SESSION["autorizar"] != "SI")

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 125

DESARROLLO DE APLICACIONES WEB

6 { 7 //si no existe, enviar a la página de autentificacion . 8 header("Location: formularioacceso.php"); 9 //salir del script

10 exit(); 11 } 12 ?> 6. Crear una página PHP para mostrar un mensaje de error, si los datos de

ingreso no sean correctos: [error.php]

1 <html> 2 <head>

3 <title>+++ Error de Ingreso +++</title>

4 </head>

5 <body bgcolor=#FFFF99>

6

<FONT FACE='verdana'>

7

<?php

8

print "Datos Incorrectos...!!!! <br>";

9

print " <b>+++ Acceso Denegado ++++ </b><br>"; 10

print "<a href='formularioacceso.php'>Formulario de Acceso </a>";

11

?>

12 </font>

13 </body>

14 </html>

7. Crear una página PHP para cerrar sesión: [cerrarsesion.php]

1 <?php 2 session_start();

3 //Eliminar sesion.

4 session_destroy();

5 ?>

6 <html>

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 126

DESARROLLO DE APLICACIONES WEB

7 <head>

8

<title>+++ Cerrar Sesión +++</title>

9 </head>

10 <body bgcolor=#FFFF99>

11

<FONT FACE='verdana'>

12

++ Sesión Cerrada para mayor seguridad ++++

13

<br><br>

14

<a href="formularioacceso.php">

15

Formulario de autentificación</a> 16

</font>

17 </body>

18 </html>

En este ejemplo tenemos dividido en dos archivos, vemos que en el verificardatos.php es el archivo que nos creara una sesión llamada autorizar con el valor “SI”, luego abrimos ingresointranet y nos mostrara si tenemos el acceso permitido, ya que abrimos

iniciarsesion.php. Si no hemos abierto nos dará error el verificardatos.php, ya que no tenemos la sesión creada.

1. Investigue: ¿Cuál es la diferencia entre sesiones y cookies? 2. Mencione sobre variables de sesiones en PHP. 3. ¿Manejo de sesiones en PDO? 4. Visualice el video: PHP – Manejo y uso de los archivos cookies, de la url:

https://www.youtube.com/watch?v=0YB8dMLMSjo, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 127

DESARROLLO DE APLICACIONES WEB IX. ACCESO A OTRAS BDS. En esta tarea trataremos las siguientes operaciones: Conectando a BD externas mediante ODBC.

EQUIPOS Y MATERIALES: Computadora con microprocesadores Core 2 Duo o de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web. ORDEN DE EJECUCIÓN: Conectando a BD externas mediante ODBC.

9.1. CONECTANDO A BD EXTERNAS MEDIANTE ODBC

ODBDC (Open DataBase Connectivity), es un estándar de acceso a base de datos, el objetivo de ODBC es hacer posible acceder a cualquier dato desde cualquier aplicación, sin importar que sistema de gestión de base de datos almacene los datos.

En este ejemplo, vamos a crear conexiones múltiples es decir a diferentes gestores de base de datos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 128

DESARROLLO DE APLICACIONES WEB

1. Verificar si en servidor de apache este configurado los siguientes

controladores, el archivo “C: \windows\system32\php.ini”

2. Crear una conexión ODBC para conectar con el gestor MSAccess.

3. Crear las siguientes tablas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 129

DESARROLLO DE APLICACIONES WEB

4. Relacionar las tablas creadas.

5. Insertar los siguientes registros.

6. Bien luego de crear la base de datos, vamos a crear la conexión ODBC a dicha base de datos.

A. Abrir el panel de control.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 130

DESARROLLO DE APLICACIONES WEB

B. Doble click herramientas administrativas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 131

DESARROLLO DE APLICACIONES WEB

C. Se muestra de la siguiente manera.

7. Crea una página PHP para realizar las conexiones múltiples. [modulo_conexion.php]

1 <?php 2 //---- Mysql

3 function conectarmysql($servidor,$bd,$usu,$clave)

4 {

5 if (!($con=mysql_connect($servidor,$usu,$clave)))

6 {

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 132

DESARROLLO DE APLICACIONES WEB

7

print "Error al seleccionar el Servidor <br>";

8 }

9 else

10 {

11

if(!mysql_select_db($bd,$con))

12

{

13

print "Error al seleccionar Base de Datos";

14

}

15 }

16 return $con;

17 }

18

19 // --- Access

20 function conectaraccess($origen,$usu,$clave)

21 {

22 if(!($con=odbc_connect($origen,$usu,$clave)))

23 {

24 print 'Error al seleccionar el Origen';

25 }

26 return $con;

27 }

28 //---- Sql Server

29 function conectarsql($servidor,$bd,$usu,$clave)

30 {

31 if (!($con=mssql_connect($servidor,$usu,$clave)))

32 {

33

print "Error al seleccionar Servidor <br>";

34 }

35 else

36 {

37

if(!mssql_select_db($bd,$con))

38

{

39

print "Error al seleccionar Base de Datos";

40

}

41 }

42 return $con;

43 }

44 //--- PostgreSQL

45 function conectarpost($servidor,$bd,$usu,$clave)

46 {

47 $cad="host=".$servidor." "."dbname=".

48

$bd." "."user=".$usu." "."password=".$clave;

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 133

DESARROLLO DE APLICACIONES WEB 49 if(!($con=pg_connect($cad)))

50 {

51 print 'Error al Seleccionar el Servidor';

52 }

53 return $con;

54 }

55 ?>

8. Crear el menú de enlaces.

1 <html> 2 <head>

3 <title>+++ Enlaces +++</title>

4 </head>

5 <body bgcolor="black">

6 <table width="78%" border="0" align="center" 7

cellpadding="2" cellspacing="2">

8

<tr bgcolor="black">

9 <td height="25" colspan="3" align="Left">

10

<a href="accesoAccess.php"><font size="2" 11

color="white" face="verdana">

12

Activar cuenta de Acceso (Access) 13

</font></a></td></tr>

14

<tr bgcolor="black">

15

<td height="25" colspan="3" align="Left">

16

<a href="accesoSqlserver.php"><font size="2" 17

color="white" face="verdana">

18

Activar cuenta de Acceso (SqlServer) 19

</font></a></td></tr>

20

<tr bgcolor="black">

21 <td height="25" colspan="3" align="Left"> 22

<a href="accesoMysql.php"><font size="2"

23

color="white" face="verdana"> 24

Activar cuenta de Acceso (Mysql)

25

</font></a></td></tr>

26 </table>

27 </body>

28 </html>

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 134

DESARROLLO DE APLICACIONES WEB 9. Bien ahora vamos a crear el acceso al gestor MSAccess.

[accesoAccess.php]

1 <HTML> 2 <HEAD>

3 <TITLE> +++ Formulario +++ </TITLE>

4 </HEAD>

5 <body bgcolor="black">

6 <form action="verificaralumno.php" method="POST"> 7 <table align="center">

8 <tr>

9 <td colspan="2" align="center">

10 <font size="2" color="white" face="Verdana"> 11 Ingrese el Codigo del Alumno 12 </font>

13 </td>

14 </tr>

15 <tr>

16 <td align="center">

17

<input type="text" value="" name="nrocod"> 18 </td>

19 </tr>

20 <tr>

21 <td colspan="2" align="center">

22 <input type="submit" value="aceptar" 23 onClick="javascript:window.close();"> 24 </td>

25 </tr>

26 </table>

27 </form>

28 </BODY>

29 </HTML> 10. Crear la verificación de los datos [verificaralumno.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 135

DESARROLLO DE APLICACIONES WEB

1 <?php

2 // Incluir el modulo de conexión

3 include('modulo_conexion.php');

4 // Realizar la conexión

5 // y asignarlo en una variable

6 $con=conectaraccess("odbc_Registro","","");

7 // Recuperar los valores del formulario

8 $cod=$_POST["nrocod"];

9 // Realizar la consulta

10 $datos=odbc_exec($con ,"select * from alumnos where codalu='$cod'");

11 // Inicializar la variable

12 $total=0;

13 // Evaluar los datos

14 if( $datos > 0 )

15 { //Crear un bucle

16

// Para contar el total de registros

17

while ( odbc_fetch_row($datos) )

18

{ //Contador

19

$total++;

20

// Recuperar los valores la tabla

21

$cod=odbc_result($datos,1);

22

$nom=odbc_result($datos,2);

23

$ape=odbc_result($datos,3);

24

}

25 }

26 // Evaluar la variable

27 if (odbc_num_rows($datos)!=0 && $total>0)

28 {

29

// Redireccionar

30

header("Location:registro.php?cod=$cod&nom=$nom&ape=$ape"); 31

// Mostrar datos

32

print $cod."<br>";

33

print $nom."<br>";

34 }

35 else

36 { // Mostrar Datos

37

print "<h1><b>Código de alumno incorrecto o Ud ya fue Registrado"; 38 }

39 ?>

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 136

DESARROLLO DE APLICACIONES WEB 11. Crear el registro de usuarios. [registro.php]

1 <HTML> 2 <HEAD>

3 <TITLE> +++ Registro +++ </TITLE>

4 </HEAD>

5 <BODY bgcolor="black">

6 <form name="form1" action="grabar.php" method='post'> 7 <table align="center" BORDER="0" width="60%"> 8 <td align="center" colspan="2">

9 <strong>

10 <font color="white" size="4" face="Arial"> 11 Registro de Usuario

12 </font></td>

13 </tr>

14 <tr>

15 <td colspan="2" align="center"><hr color="orange"> 16 <font color="white" size="4" face="Arial"> 17 Alumno(a).

18 <?php

19 print "$nom" ." "."$ape";

20 ?>

21

22 </font>

23 </td>

24 </tr>

25 <tr>

26 <td colspan="2" align="center"> 27 <font color="white" size="4" face="Arial"> 28 Codigo :</font>

29 <input type="text" value="<?php print $cod; ?>" 30

name="txtcod">

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 137

DESARROLLO DE APLICACIONES WEB

31 <hr color="orange">

32 </td>

33 </tr>

34 <tr>

35 <td colspan="2"><br>

36 <font color="white" size="4" face="Arial"> 37 Completar los datos solicitados para 38 terminar su registro.

39 </font><br>

40 </td>

41 </tr>

42 <tr>

43 <td>

44

<font color="white" size="4" face="Arial">

45 Usuario:</font>

46 </td>

47 <td>

48 <input type="text" name="txtusuario"> 49 </td>

50 </tr>

51 <tr>

52 <td>

53 <font color="white" size="4" face="Arial"> 54 Clave:</font>

55 </td>

56 <td>

57 <input type="password" name="txtclave"> 58 </td>

59 </tr>

60 <tr>

61 <td align='center' colspan="2"> 62 <input type='submit' value='Grabar'> 63 </td>

64 </tr>

65 </table>

66 </form>

67 </BODY>

68 </HTML> 12. Crear la página PHP. [grabar.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 138

DESARROLLO DE APLICACIONES WEB

1 <HTML> 2 <HEAD>

3 <TITLE> +++ Grabar +++ </TITLE>

4 </HEAD>

5 <BODY>

6 <?php

7 // Incluir el modulo de conexión

8 include('modulo_conexion.php');

9 // Recuperar los valores del formulario

10 $usu=$_POST['txtusuario'];

11 $cod=$_POST['txtcod'];

12 // Realizar la conexión

13 // y asignarlo en una variable

14 $con=conectaraccess("odbc_Registro","","");

15 // Realizar la consulta

16 $datos=odbc_exec($con ,"select * from usuarios where codalu='$cod'"); 17 // Inicializar la variable

18 $total=0;

19 // Evaluar los datos

20 if( $datos > 0 )

21 { //Crear un bucle

22

// Para contar el total de registros

23

while ( odbc_fetch_row($datos) )

24

{ //Contador

25

$total++;

26

}

27 }

28 // Evaluar la variable

29 if($total>0)

30 { // Mostrar un mensaje

31

print "<b><h1>Usuario ya fue Registrado...!!!!<br>";

32 }

33 else

34 {

35

// Recuperar los valores del formulario

36 $usu=$_POST['txtusuario'];

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 139

DESARROLLO DE APLICACIONES WEB 37 $clave=$_POST['txtclave'];

38 // Crear una cadena para la inserción

39 $cad="insert into usuarios values('$cod','$usu','$clave')"; 40 // Ejecurar el query

41 $datos=odbc_exec($con ,$cad);

42 // Mostrar una mensaje

43 print "<h><h1>Usuario Registrado Ok...!!!!<br>";

44 }

45 ?>

46 </BODY>

47 </HTML>

En este ejemplo, ingresamos el código del alumno, si dicha información existe se muestra el nombre y apellido en otra página web, y se debe ingresar los datos de usuario para terminar correctamente el registro.

1. Investigue: ¿Cuál es la diferencia entre ODBC y ficheros de conexión? 2. Mencione sobre la conexión de PHP y Oracle. 3. Visualice el video: PHP y PostGreSQL. Creación de tablas y tipos de datos,

de la url: https://www.youtube.com/watch?v=et7z2FkzNkg, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 140

DESARROLLO DE APLICACIONES WEB X. PASARELA DE PAGO. En esta tarea trataremos las siguientes operaciones: Reconocer medios de pagos para Comercio electrónico.

Implementando una pasarela de pago.

EQUIPOS Y MATERIALES: Computadora con microprocesadores core 2 Duo ó de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación y desarrollo de páginas web.

ORDEN DE EJECUCIÓN: Reconocer medios de pagos para Comercio electrónico Implementando una pasarela de pago

10.1. RECONOCER MEDIOS DE PAGOS PARA COMERCIO ELECTRÓNICO. Los medios de pagos online para muchos de nosotros que alguna vez quisimos comprar online por internet nos es demasiado desconfiado y arriesgado, y por ello se surgiere plataformas con las que vincular el pago a una tarjeta de débito o crédito o a una cuenta bancaria, de modo que solo se tenga que introducir la clave de la cuenta de usuario de la misma plataforma. Algunas opciones son Paypall, Google Wallet o Paymill. Uno de estas es: La transferencia bancaria directa. Esta opción no es a través de una tarjeta, ya que el pago se realiza con una transferencia bancaria desde una cuenta online en la misma tienda online, requisito necesario e importante. De este modo se realiza el importe sin salir

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 141

DESARROLLO DE APLICACIONES WEB del proceso de compra y tan solo introduciendo las claves que el banco envía al cliente a través de un mensaje de texto o con una tarjeta de coordenadas para confirmar la transferencia. Se trata de un mecanismo que no almacena información del usuario y solo se produce si el comprador confirma a través de las claves que le proporciona la entidad. La otra es el Pago contra-reembolso. Es seguramente la modalidad más segura, porque basa su funcionamiento en el pago tradicional. Se trata de abonar el importe del producto al transportista que se encargue de llevarlo al lugar acordado. Es el cuarto método de pago más usado, con el 17% de las preferencias, según el Observatorio eCommerce. Sin embargo, no todas las tiendas online cuentan con este sistema. Para evitar que se filtren los datos de tu tarjeta, muchos establecimientos utilizan TPV virtuales con autenticación, de modo que la entidad que emite el plástico pueda verificar que es auténtico y proteger los datos del cliente. Hay que tener en cuenta que hay establecimientos online que solo permiten la compra a través de tarjetas de crédito y algunos que no permiten el pago con tarjetas prepago.

Proceso típico de Comercio electrónico

El cliente navega por su tienda Virtual y compra el producto

Comprar

Confirmar Compra

Al confirmar la compra, se levanta la aplicación con Paypal automáticamente.

Al ir comprando, los productos se guardan en el carrito de compras.

Transacción 100% segura

El cliente recibe la confirmación del pago desde la tienda Virtual

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 142

DESARROLLO DE APLICACIONES WEB 10.2. IMPLEMENTANDO UNA PASARELA DE PAGO

Para estos casos, en este artículo se explica paso a paso la implementación de una página de pago mediante Paypal en un sitio web, utilizando directamente el API de Paypal.

1. Crear las cuentas de prueba, ingresar a http://developer.paypal.com

2. Ingresar los datos en el formulario.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 143

DESARROLLO DE APLICACIONES WEB

3. Se mostrarán los datos de la cuenta.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 144

DESARROLLO DE APLICACIONES WEB Crear un formulario de pago básico con PHP.

4. Crear el siguiente formulario.

[boleto.php]

1 <html> 2 <head>

3 <title>++ Ticket ++</title>

4 <meta http-equiv="Content-Type"

5 content="text/html; charset=utf-8" />

6

7 <style type="text/css">

8 body{

9 font-family:verdana;

10

11 }

12 </style>

13

14 </head>

15

16 <body oncontextMenu="return false">

17

18 <form name="frmticket" method="get"

19 action="boleto.php" >

20

21 <table width="0%" border="0" align="center"

22 cellpadding="0" cellspacing="0">

23 <tr>

24

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 145

DESARROLLO DE APLICACIONES WEB

25 <td><strong>Cine ETI SENATI</strong>

26 </td>

27 <td></td>

28 </tr>

29 <tr>

30 <td colspan="2"><br></td>

31 </tr>

32 <tr>

33 <td>Película:</td>

34

35 <td><select name="cmbpelicula"

36 value="<?php print $_GET['cmbpelicula']; ?>" >

37

38

<option>[ Seleccione]</option>

39

<option>Planta Madre</option>

40

<option>Mad Max</option>

41

<option>Terminator</option> 42 </select>

43 </td>

44 </tr>

45

46

47 <tr>

48 <td>Horario:</td>

49 <td>

50 <input type="time" name="txtinicio"

51 value="<?php print $_GET['txtinicio']; ?>" >

52

53 <font size="1"> Inicio</font>

54

<br>

55

56 <input type="time" name="txtfin"

57 value="<?php print $_GET['txtfin']; ?>" >

58

59 <font size="1"> Fin</font>

60 </td>

61 </tr>

62 <tr>

63 <td>Precio:</td>

64 <td><input type="text" name="txtprecio"

65 placeholder="Ingrese"

66

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 146

DESARROLLO DE APLICACIONES WEB

67 value="<?php print $_GET['txtprecio']; ?>" ></td>

68 </tr>

69 <tr>

70 <td>Cant. Butacas:</td>

71 <td>

72 <input type="number" name="txtcantidad"

73 size="5" placeholder="Ingrese"

74

75 value="<?php print $_GET['txtcantidad']; ?>" >

76 </td>

77 </tr>

78 <tr>

79 <td>Importe:</td>

80 <td>

81 <input type="text" name="txtimporte" size="5"

82 value="<?php

83

print $_GET['txtcantidad'] * $_GET['txtprecio']; 84 ?>" >

85 </td>

86 </tr>

87 <tr>

88 <td colspan="3"><br>

89 </td>

90 </tr>

91 <tr>

92 <td colspan="2" align="center">

93 <input type="submit" value="Calcular Importe">

94 <input type="submit" value="Pagar">

95 </td>

96 </tr>

97 <tr>

98 <td colspan="3"><br></td>

99 </tr>

100

101 </table>

102

103 </form>

104

105 <?php

106

107 if($_GET['txtimporte']>0)

108 {

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 147

DESARROLLO DE APLICACIONES WEB 109 ?>

110 <center>

111

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr"

112 method="post">

113

114 <input type="hidden" name="cmd" value="_xclick">

115 Correo de la empresa: <input type="hidden" name="business" 116 value="[email protected]">

117

118 <input type="hidden" name="item_name"

119

value="Premium Subscription">

120

121 <input type="hidden" name="currency_code" value="USD"> 122

123 <input type="hidden" name="amount"

124

125 value="<?php print $_GET['txtimporte']; ?>">

126

127 Click aquí para realizar el pago-->

128 <input type="image"

129 src="http://www.paypal.com/es_XC/i/btn/x-click-but01.gif" 130 name="submit"

131 alt="Pago por Paypal">

132

133 </form>

134

135 <?php

136 }

137

138 ?>

139

140

141 </body>

142 </html>

5. Se mostrará la siguiente página web:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 148

DESARROLLO DE APLICACIONES WEB

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 149

DESARROLLO DE APLICACIONES WEB

1. Investigue: ¿Condiciones de uso del servicio de PayPal? 2. Mencione sobre otras formas de realizar pagos por internet. 3. Visualice el video: ¿Que es Paypal? Como Utilizarlo, de la url:

https://www.youtube.com/watch?v=opvcQm3EmyI, haga un comentario acerca del video.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 150