Sei sulla pagina 1di 150

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL

DESARROLLO DE
SOFTWARE

MANUAL DE APRENDIZAJE

DESARROLLO DE
APLICACIONES WEB

CÓDIGO: 89001703

Profesional Técnico
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/

Ejercicios y tareas de investigación

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.

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.
$ABC 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
Cualquier valor numérico (dentro de este
Integer $a=1234 2147483647 -2147483647 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

Cualquier valor numérico decimal o entero (fuera del intervalo anterior) que se
Double $a=1.23 asigne a una variable la convertirá a este tipo
Cualquier valor entrecomillado (sean números o letras) que se asigne a una
String $a="123" variable la convertirá a este tipo

Declarar variables y asignarle un valor en un ámbito (alcance)


privado y público.

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 $resultado = 1 == 1; // el resultado será True
al segundo

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

< Menor que Retorna True si el primer operando es $resultado = 1 < 2; // el resultado será True
menor que el segundo

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 32


DESARROLLO DE APLICACIONES WEB

> Mayor que Retorna True si el primer operando es $resultado = 1 > 2; // el resultado será False
mayor que el segundo
Menor o igual Retorna True si el primer operando es
<= $resultado = 1 <= 1; // el resultado será True
que menor o igual que el segundo
Mayor o igual Retorna True si el primer operando es
>= $resultado = 1 >= 2; // el resultado será False
que mayor o igual que el segundo
Operadores Lógicos
$resultado=True && True;// $resultado tendrá valor True
&& AND Realiza una operación lógica "AND"
$resultado=True && False; //$resultado tendrá valor False

Realiza una operación lógica "OR" $resultado = True || True; // $resultado tendrá valor False
|| OR
( OR exclusivo) $resultado=True && False;//$resultado tendrá valor True

Realiza una negación de la operación a la $resultado = !True ; // $resultado tendrá valor False
! NOT
cual se anteponga $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
$cadena1 = 'ETI-';
$cadena2 = ' SENATI';
. Concatena Permite concatenar cadenas de texto
//Concatenamos
echo $cadena1 . $cadena2; // Resultado es: ETI-SENATI

Operadores de Asignación
Realiza la asignación de un valor que este a
= Asignación la derecha a una variable que este a la $resultado = 10 ;
izquierda del operador

Suma el valor de la derecha al valor de la


Suma-
+= variable a la izquierda y lo asigna en la $resultado = 10; $resultado += 5; // $resultado será 15
Asignación
variable

Resta el valor de la derecha al valor de la


Resta-
-= variable a la izquierda y lo asigna en la $resultado = 10; $resultado -= 5; // $resultado será 5
Asignación
variable

Multiplica el valor de la derecha y el valor


Multiplicación-
*= de la variable a la izquierda y lo asigna en la $resultado = 10; $resultado *= 5; // $resultado será 50
Asignación
variable

Divide el valor de la derecha y el valor de la


División-
/= variable a la izquierda y lo asigna en la $resultado = 10; $resultado /= 5; // $resultado será 2
Asignación
variable

Calcula el módulo del valor de la derecha y


Módulo-
%= el valor de la variable a la izquierda y lo $resultado = 10; $resultado %= 5; // $resultado será 0
Asignación
asigna en la variable

Concatena el valor de la derecha y el valor


Concatena- $resultado = 'ETI'; $var .= 'SENATI'; // $resultado será
.= de la variable a la izquierda y lo asigna en la
Asignación ETISENATI
variable

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) if(condición)
{ {
instrucciones; 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:


If(condición1)
Instrucciones;
Else
If(condición2)
{
Instrucciones;
}
Else
If(condición3)
{
Instrucciones;
}
Else
{
Instrucciones;
}

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%

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
Switch( variable)
{ case valor1:
instrucciones; break;
case valor2:
instrucciones; break;
case valor3:
instrucciones; break;
default : instrucciones;]
}

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)

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:

Ejercicios y tareas de investigación

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.

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)
[0][2][2]
Arreglo1

[0][2][1]

[0][2][0]

Arreglo2

[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:

Ejercicios y tareas de investigación

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.

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

Ejercicios y tareas de investigación

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.

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

Ejercicios y tareas de investigación

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.

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.

En el caso en el que el servidor no se encuentre en otra


mysql –h nombre_host –u usuario –p clave
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

Las opciones de tipo de campo son:

tinyint --> 1 byte


smallint --> 2 byte
Los apartados para crear tablas son:
mediumint --> 3 byte
int --> 4 byte
Generales:
bigint --> 8 byte
null --> admite valores nulos
float --> 4 byte
no null --> rechaza dejar el campo en blanco
double --> 8 byte
default --> permite establecer un valor por
decimal --> variable
defecto
char(n) --> cadena de caracteres de longitud fija
Columnas numéricas:
varchar(n) --> cadena de caracteres de longitud variables
auto_increment --> para generar
tinyblob --> objeto binario largo (muy pequeño)
identificadores únicos o valores en serie.
blob --> objeto binario largo (pequeño)
unisgned --> rechazo de valores negativos
mediumblob --> objeto binario largo (medio)
Cadena:
longblob --> objeto binario largo (grande)
binary --> trata los valores como cadenas
tinytext --> cadena de texto muy pequeña
binarias (campos char y varchar)
text --> cadena de texto pequeña
Cláusulas3:
mediumtext --> cadena de texto media
primary key --> columna indexada para
longtext --> cadena de texto larga
búsqueda rápida. Clave principal, solo puede
enum --> una enumeración
haber una
set --> un conjunto
unique --> crea un índice con valores únicos
date --> valor fecha (aaaa-mm-dd)
index, key --> son sinónimos y crean índices
time --> valor de hora (hh-mm-ss)
que pueden contener valores repetidos.
datetime --> valor de fecha y hora
timestamp --> valor de lapso de tiempo
(aaaammddhhmmss)
year --> valor de año

INSERT INTO table_name Se utiliza para insertar nuevos registros a una tabla -
VALUES (value1,value2,value3,...); Forma1

INSERT INTO table_name


La segunda forma específica tanto los nombres de las
(column1,column2,column3,...)VALUES
columnas como los valores a insertar
(value1,value2,value3,...);
INSERT INTO table2 Podemos copiar todas los registros de una tabla a otra ya
SELECT * FROM table1; existente
INSERT INTO table2
(column_name(s)) O podemos copiar de una tabla a otra, solamente las
SELECT column_name(s) columnas que queremos
FROM table1;

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


Actualiza los registros de una tabla en bloque.
ningún usuario este utilizando la tabla.

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
Borrado de tablas: elimina una o varias tablas.
la tabla.
LIMIT n: estable un número máximo de
registros a borrar.
Borrado de una base de datos. Elimina la base de datos y
DROP DATABASE [if exist] nombre_database
todas las tablas que contiene.

show columns from nombre_tabla [from


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

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( create table detallefacturas(


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

create table facturas( create table usuarios(


nrofac char(10) not null, codusuario char(10),
codcli char(10) not null, codestado char(10),

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 86


DESARROLLO DE APLICACIONES WEB

subtotal decimal(8,2) , usuario char(50),


igv decimal(8,2), clave char(50));
total decimal(8,2),
estado int default 0, create table estadousuarios
fechaemi date, (codestado char(10),
fechacan date, descripcion char(50));
codper char(10));

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","gsaenz@hotmail.com","gabriela.jpg"),
("C0002","Angelina","Ascona",77778888,1112233,"Jr. Las Lomas #765 -La
molina","aascona@yahoo.es","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","mramirez@hotmail.com","manuel.jpg","U0002"),
("R0002","Pedro","Morales",72378888,3112233,"Jr. Las Rosas #765 -
Surco","pmorales@yahoo.es","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:

Usar múltiples líneas - Inicio


delimiter //
create procedure insertarclientes
(
codcli char(10),
nomcli varchar(30),
apecli varchar(30),
dnicli double, Declarar Parámetros
telcli double,
direccli varchar(50),
emailcli varchar(50),
fotocli varchar(100))

begin Instrucciones

insert into Clientes values


(codcli,nomcli,apecli,dnicli,telcli,direccli,emailcli,fotocli);

end;

// Usar múltiples líneas - Fin

delimiter //
create procedure insertarproductos
(
codpro char(10),
nombrePro varchar(30),
descripPro varchar(100),
puPro decimal(8,2),
stockPro double,
fotoPro varchar(30))

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.

Ejercicios y tareas de investigación

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.

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.


2.- Analisis de
sitios
similares

3.- Se define la
1.- Definición
estructura del
del Problema
sitio

Proyecto
Web
6.- Se concluye el 4.- Se diseña un
diseño final prototipo
general del sitio

5.- Se pone a
prueba el
prototipo

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]

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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 112


DESARROLLO DE APLICACIONES WEB

35 <td colspan="4"><hr color="#FFCC00" size="5">


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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 113


DESARROLLO DE APLICACIONES WEB

93 $calculo = $SubTotal * $igv;


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

3. Crear el formulario para Insertar Cliente.


[insertarClientes.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 114


DESARROLLO DE APLICACIONES WEB

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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 115


DESARROLLO DE APLICACIONES WEB

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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 116


DESARROLLO DE APLICACIONES WEB

101 </font> Total => S/ <font color='green'>


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

4. Crear el formulario para Insertar Productos.


[insertarProductos.php]

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 117


DESARROLLO DE APLICACIONES WEB

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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 118


DESARROLLO DE APLICACIONES WEB

59 print "<option value='$c'>&nbsp;&nbsp; $c &nbsp;&nbsp;";


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

5. Crear la página web Grabar Factura.


[grabarFactura.php]

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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 119


DESARROLLO DE APLICACIONES WEB

11 //Almacenar la conexión en una variable


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

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 120


DESARROLLO DE APLICACIONES WEB

Ejercicios y tareas de investigación

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.

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" >
<table align="center" width="350"
7 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>
<td align="right"><b>Ingrese Clave
16 :</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.

Ejercicios y tareas de investigación

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.

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 }
return
42
$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
// Incluir el modulo de
2
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
$datos=odbc_exec($con ,"select * from alumnos where
10
codalu='$cod'");
11 // Inicializar la variable
12 $total=0;
// Evaluar los
13
datos
14 if( $datos > 0 )
{ //Crear un
15
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
{ // Mostrar
36
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.

Ejercicios y tareas de investigación

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.

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
El cliente recibe la confirmación
compra el producto
del pago desde la tienda Virtual
Al confirmar la compra, se
levanta la aplicación con Paypal
automáticamente.

Confirmar
Compra

Comprar

Al ir comprando, los Transacción


productos se guardan
100% segura
en el carrito de
compras.

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
<style
7 type="text/css">
8 body{
font-
9 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="etisenati201502@gmail.com">
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

Ejercicios y tareas de investigación

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.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 150

Potrebbero piacerti anche