unidad 1 web
TRANSCRIPT
-
7/22/2019 Unidad 1 Web
1/150
INSTITUTO TECNOLOGICO SUPERIO DE
MACUSPANA.
PROGRMACION WEB I
DOCENTE:
LUIZ SOSA CASTRO
ALUMNA:
SILVIA SANTIZ GOMEZ
CARRERA:
ING. EN SISTEMAS COMPUTACIONALES
-
7/22/2019 Unidad 1 Web
2/150
-
7/22/2019 Unidad 1 Web
3/150
Ligereza: reduce la comunicacin entre clientes y servidores a intercambiosdiscretos, de modo que no sobrecarga la red y permite saltos hipertextualesrpidos.
Generalidad: puede utilizarse para transferir cualquier tipo de datos, segn el
estndar MIME. Esto incluye tambin los que desarrollen en el futuro, ya que elcliente y el servidor pueden negociar en cualquier momento el modo derepresentacin de los datos: el cliente notifica al servidor una lista de formatos queentiende, y en adelante el servidor slo remitir al cliente datos que este seacapaz de manejar. El cliente debe aceptar al menos dos formatos: text/plain (textonormal) y text/html (hipertexto).
Extensibilidad: contempla distintos tipos de transaccin entre clientes y servidores("mtodos", en la jerga HTTP), y la futura implementacin de otros nuevos. Estoabre posibilidades ms all de la simple recuperacin de objetos de la red:
bsquedas, anotaciones, etc.
El esquema bsico de cualquier transaccin HTTP entre un cliente y un servidores el siguiente:
Conexin:El cliente establece una conexin con el servidor a travs del puerto 80(puerto estndar), u otro especificado.
Peticin:El cliente enva una peticin al servidor.
Respuesta: El servidor enva al cliente la respuesta (esto es, el objeto
demandado o un cdigo de error).Cierre:Ambas partes cierran la conexin.
El protocolo HTTP es el que da vida a Internet, y gracias al cual, los clientes yservidores se pueden comunicar.
Sus criterios de diseo han sido:
Simplicidad:no se debe abandonar el criterio introducido en HTTP 1.0, que lascosas habituales sean sencillas, de forma que sea fcil implementar el protocolo.
Rendimiento: debe ser eficiente trasmitiendo objetos en redes decomunicaciones.
Asncrono:las peticiones desde los clientes han de poderse hacer en paralelo atravs de una nica conexin.
-
7/22/2019 Unidad 1 Web
4/150
-
7/22/2019 Unidad 1 Web
5/150
c)Idear una forma de codificar las instrucciones para los saltos hipertextuales deun objeto a otro de la Internet. Dada la variedad de protocolos, y por tanto, formasde almacenamiento y recuperacin de la informacin, en uso en la Internet, estainformacin es vital para que los clientes (ver el siguiente punto) puedan acceder adicha informacin.
d) Desarrollar aplicaciones cliente para todo tipo de plataforma y resolver elproblema de cmo acceder a informacin que est almacenada y es accesible atravs de protocolos diversos (FTP, NNTP, Gopher, HTTP, X.500, WAIS, etc.) yrepresentar informacin multiformato (texto, grficos, sonidos, fragmentos devdeo, etc.). A este fin se han desarrollado diversos clientes, entre los que destacala familia Mosaic, del NCSA (National Center for Supercomputer Applications) dela Universidad de Chicago, y su sucesor Netscape Navegador, de NetscapeCommunications Corporation.
1.2.2 URL.
Las URL semnticas o URL amigables son aquellas URLs que son, dentro de loque cabe, entendibles para el usuario. Lejos de las clsicas URLs de las pginasdinmicas llenas de variables GETy nmeros difciles de recordar, las URLsemnticas estn formadas con palabras relacionadas con el contenido de lapgina y fciles de recordar. Estas se utilizan en los sitios web dinmicos (noestticos). Por ello se estn utilizando mucho ms que las URL extensas.
URL no semntica Las urls
En las pginas dinmicas suelen tener este formato. Imaginemos que entramos enuna pgina web a leer una noticia que habla sobre cmo crear URL amigables:
http://www.miweb.com/index.php?seccion=noticias&id_noticia=133
Si tenemos conocimiento de programacin web sabremos que estamosaccediendo al archivo index.php en www.miweb.com, pasndole a este lasvariables seccin e id noticia con los valores "noticias" y 133 respectivamente. Sidentro de un tiempo queremos volver a esa pgina difcilmente recordaremos
dicha url. Y a su vez si vemos esta URL sin entrar a la pgina nos ser imposiblesaber de qu trata.
URL semntica
Con la intencin de hacer estas URLs ms fciles de entender y a su vez derecordar surgen las URL amigables. La URL anterior podra quedar de esta formasi la semantizamos:
-
7/22/2019 Unidad 1 Web
6/150
http://www.miweb.com/noticias/url-amigables.html
De esta forma con slo leer la url sabremos de lo que trata la pgina y se nos harmucho ms fcil de recordar en un futuro.
1.2.3 Mtodos HTTP. Persistencia en http-cookies.
Las cookies son utilizadas habitualmente por los servidores web para diferenciarusuarios y para actuar de diferente forma dependiendo del usuario. Las cookies seinventaron para ser utilizadas en una cesta de la compra virtual, que acta comodispositivo virtual en el que el usuario va colocando los elementos que desea
adquirir, de forma que los usuarios pueden navegar por el sitio donde se muestranlos objetos a la venta y aadirlos y eliminarlos de la cesta de la compra en
cualquier momento. Las cookies permiten que el contenido de carrito de compra.
Toda cookie est vinculada con un dominio o subdominio. Adems existe unarestriccin impuesta por el propio estndar de manera que no es posible acceder acookies de otro dominio o subdominio que no sea el de la propia URL donde seencuentra la pgina web. Esto significa que una pgina web en la direccinwww.idg.es, por ejemplo, slo podr acceder a las cookies vinculadas con losdominios www.idg.es. Como ya se ver ms adelante, las distintas tecnologas, yasean de cliente o de servidor, disponen de los mecanismos necesarios paraimplementar dicho vnculo. Una cookie que es del dominio .idg.es ser accesible
desde cualquier URL que sea del tipo ordenadores .idg.es, Internet.idg.es, oincluso, www.ordenadores.idg.es o www.internet.idg.es. La restriccin se extiendedesde el caso general hasta los casos particulares. Ahora bien, una cookie deldominio www.internet.idg.es no ser accesible desde una pgina web que seencuentre bajo la direccin URL www.ordenadores.idg.es.
1.3 Introduccin a la HTML (hiper text marrp languaje)
El HTML (Hyper Text Markup Language) es el lenguaje con el que se escriben
laspginas web. Es un lenguaje de hipertexto, es decir, un lenguaje que permiteescribir texto de forma estructurada, y que est compuesto por etiquetas, quemarcan el inicio y el fin de cada elemento del documento.
Un documento hipertexto no slo se compone de texto, puede contenerimgenes, sonido, vdeos, etc., por lo que el resultado puede considerarse comoun documento multimedia.
-
7/22/2019 Unidad 1 Web
7/150
Los documentos HTML deben tener la extensin HTMLo HTM, para que puedanser visualizados en los navegadores (programas que permiten visualizar laspginas web).
Los navegadoresse encargan de interpretar el cdigo HTML de los documentos,y de mostrar a los usuarios las pginas web resultantes del cdigo interpretado.
Las etiquetas constituyen la filosofa de este lenguaje. Por medio de ellas sepueden controlar los elementos tipogrficos del texto: tipo, color y tamao de lasfuentes, el estilo (negrita, cursiva, etc.), as como tambin la inclusin de tablas,listas, formularios, la insercin de fotos, sonidos, fondos, los enlaces mencionadosanteriormente. etc.Las etiquetas se pueden modificar por medio de sus atributos, stos son del tipoatributo="valor" y se colocan detrs del nombre de la etiqueta.
1.3.1 HTML como un tipo SGML
Cuando tenemos un documento en soporte fsico y lo convertimos en informacindigital, sobre lo que es su contenido aadimos una capa de meta informacincomprensible para las mquinas que van a procesar ese contenido.
En un principio, esos metadatos consistan en cdigos de control o macros queespecificaban el formato de ese contenido para una aplicacin concreta, por lo quese conocan tambin por cdigo especfico. Para permitir la interoperabilidad delos documentos era necesario un cdigo genrico, que no dependiese de laaplicacin, al menos en teora.
Uno de los padres de este concepto, Charles Goldfarb invent en 1969 el primerlenguaje de marcado junto a sus compaeros Edward Mosher y Raymond Loriedel Almaden Research Center de IBM: GML. Adems de coincidir con las inicialesde sus apellidos, GML significa Generalized Markup Language, Lenguaje deMarcado Generalizado, y adems de la idea de marcar textos con etiquetasaada dos conceptos importantes: la definicin formaldel tipo de documento, y laestructura de elementos anidados.
1.3.2 Elementos del lenguaje HTML.
Los elementos son declaraciones para visualizar o dar forma a una pgina Web.Las etiquetas (en ingls: tags) son marcas insertadas en un documento HTMLpara proporcionar informacin sobre una unidad o contenido.
-
7/22/2019 Unidad 1 Web
8/150
Reglas bsicas
Las etiquetas estn encerradas entre los signos "".Generalmente vienen en pares
y .
Elemento Definicin
A Enlace de hipertexto o destino de un link
ABBR Abreviatura
ACRONYM Acrnimo
ADDRESS Direccin
AREA rea de un mapa de imagen
B Texto en negritas
BASE URI de base del documento
BDO Sustitucin del algoritmo de bidireccionalidad
BIG Texto ms grande
BLOCKQUOTE Cita de bloque
BODY Cuerpo del documento
BR Salto de lnea
BUTTON Botn
CAPTION Encabezado de una tabla
CITE Cita
-
7/22/2019 Unidad 1 Web
9/150
-
7/22/2019 Unidad 1 Web
10/150
HEAD Encabezado del documento
HR Lnea horizontal
HTML Documento HTML
I Texto en itlicas
IMG Imagen
INPUT Entrada de formularios
INS Texto insertado
KBD Texto a ser ingresado
LABEL Etiqueta de un campo de formulario
LEGEND Encabezado de un grupo de control
LI tem de una lista
LINK Relaciones del documento
MAP Mapa de una imagen
META Metadato
NOSCRIPT Contenido alternativo a un script
OBJECT Objeto
OL Lista ordenada
OPTGROUP Grupo de opciones
-
7/22/2019 Unidad 1 Web
11/150
OPTION Men de opciones
P Prrafo
PARAM Parmetros de un objeto
PRE Texto preformateado
Q Cita corta
SAMP Resultado de un ejemplo
SCRIPT Script ejecutado en la mquina cliente
SELECT Selector de opciones
SMALL Texto pequeo
SPAN Contenedor genrico a nivel de lnea
STRONG Enfasis fuerte
STYLE Hoja de estilo incrustada
SUB Subndice
SUP Superndice
TABLE Tabla
TBODY Cuerpo de la tabla
TD Celda de datos de una tabla
TEXTAREA Entrada de texto de mltiples lneas
-
7/22/2019 Unidad 1 Web
12/150
TFOOT Pie de una tabla
TH Celda de encabezamiento de una tabla
THEAD Encabezado de la tabla
TITLE Ttulo del documento
TR Fila de una tabla
TT Texto de teletipo
UL Lista sin ordenar
VAR Variable
1.3.3 Tablas en HTML
La altura y anchura global de una tabla se indica dentro del atributo ,que seala la apertura y cierre de una tabla. Las dimensiones se definenmediante WIDTH (ancho) y HEIGHT (alto) y pueden expresarse en pxel o en
tantos por ciento respecto a la pgina:
En este ejemplo de cdigo, la anchura de la tabla est expresada en pxel (500).Si se elige esta opcin, sea cual sea la resolucin con la que venga vista lapgina, la medida de la tabla no sufrir variaciones, es decir, en nuestro casoser siempre de 500 pxel.No suceder lo mismo, sin embargo, si decidimos expresar el tamao medianteun porcentaje:
Ahora echemos un vistazo a la manera en que debe estructurarse una tabla. Paraello utilizaremos algunas imgenes:
-
7/22/2019 Unidad 1 Web
13/150
Como vemos por esta imagen, el atributo genera la tabla, mientras que sirve para definir los campos presentes dentro de esta tabla.He aqu cmo el diseo puede ser transformado en cdigo y, por tanto, en unatabla propiamente dicha:
1.3.4 Formularios.
Un formulario HTML es una seccin de un documento que contiene contenido
normal, cdigo, elementos especiales llamados controles (casillas de verificacin(checkboxes), radiobotones (radio buttons), menes, etc.), y rtulos (labels) enesos controles. Los usuarios normalmente "completan" un formulario modificandosus controles (introduciendo texto, seleccionando objetos de un men, etc.), antesde enviar el formulario a un agente para que lo procese (p.ej., a un servidor web, aun servidor de correo, etc.)
http://html.conclase.net/w3c/html401-es/interact/forms.html#form-controlshttp://html.conclase.net/w3c/html401-es/interact/forms.html#form-controlshttp://html.conclase.net/w3c/html401-es/interact/forms.html#form-controls -
7/22/2019 Unidad 1 Web
14/150
se muestra un ejemplo de un formulario simple que incluye rtulos, radiobotones ybotones para reinicializar el formulario o para enviarlo:
Nombre:
Apellido:
email:
Varn
MujerLos usuarios interaccionan con los formularios a travs de los llamados controles.
El "nombre de control"de un control viene dado por su atributo name. El "campode accin" o alcance del atributo name de un control contenido en un elementoFORMes el elementoFORM.
Cada control tiene tanto un valor inicial como un valor actual, que son amboscadenas de caracteres. Consulte la definicin de cada control para obtenerinformacin sobre los valores iniciales y las posibles restricciones que puede
imponer cada control sobre sus valores. En general, el "valor inicial"de un controlpuede especificarse con el atributo value del elemento de control. Sin embargo, elvalor inicial de un elemento TEXTAREAviene dado por sus contenidos, y el valorinicial de un elemento OBJECT de un formulario est determinado por laimplementacin del objeto (es decir, se sale fuera del alcance de estaespecificacin).
El "valor actual"del control se hace en primer lugar igual al valor inicial. A partir deese momento, el valor actual del control puede ser modificado a travs de lainteraccin con el usuario y mediantescripts.
El valor inicial de un control no cambia. As, cuando se reinicializa el formulario, elvalor actual de cada control se reinicializa a su valor inicial. Si el control no tieneun valor inicial, el efecto de una reinicializacin del formulario sobre ese control esindefinido.
Cuando se enva un formulario para su procesamiento, para algunos controles seempareja su nombre con su valor actual, y estas parejas se envan con el
http://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-TEXTAREAhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-TEXTAREAhttp://html.conclase.net/w3c/html401-es/struct/objects.html#edef-OBJECThttp://html.conclase.net/w3c/html401-es/struct/objects.html#edef-OBJECThttp://html.conclase.net/w3c/html401-es/interact/scripts.htmlhttp://html.conclase.net/w3c/html401-es/interact/scripts.htmlhttp://html.conclase.net/w3c/html401-es/interact/scripts.htmlhttp://html.conclase.net/w3c/html401-es/interact/scripts.htmlhttp://html.conclase.net/w3c/html401-es/struct/objects.html#edef-OBJECThttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-TEXTAREAhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORMhttp://html.conclase.net/w3c/html401-es/interact/forms.html#edef-FORM -
7/22/2019 Unidad 1 Web
15/150
formulario. Aquellos controles cuyas parejas nombre/valor se envan se llamancontroles con xito.
1.4 Evolucin del desarrollo de aplicaciones Web
Informativos y contenido esttico (HTML esttico).
DHTML (D de dinmico), que incluye la posibilidad de incluir comportamientodinmico en la pgina. Ejemplo: mens, hojas de estilo.
Lenguajes de programac in del lado del cliente como Javascript, Vbscript,
Applets (Java).
Incorporacin de multimedia (Flash, SilverLigth).
Lenguajes de programac in del lado del servidor (tecnologa CGI).
Lenguajes de programac in del lado del servidor de siguiente generacin
ASP, PHP, JSP, etc.).
Desarrollo de tecnologa para la seguridad (uso de claves, encriptacin).
Aplicaciones en Web como Comercio Electrnico.
E-Government, E-procurement, Internet banking, etc.
Servicios Web.
1.5 Hojas de estilo en cascadas e introduccin al XML
Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguajeformal usado para definir la presentacin de un documento estructurado escritoen HTML o XML (y por extensin en XHTML).
Una vez seleccionado el formato para los diferentes elementos (body, table, h1,h2, etc.), se puede aplicar esta hoja de estilos a la pgina.
Para aplicar el estilo simplemente se selecciona el archivo de estilos, y searrastra y coloca en la pgina donde se quiere aplicar dicho es tilo.
Demostracin en una hoja de es tilos en VS 2005.
-
7/22/2019 Unidad 1 Web
16/150
XML, en ingls Extensible Markup Language (lenguaje de marcas ampliable),es un metalenguaje extensible de etiquetas desarrollado por el World Wide WebConsortium (W3C). Es una simplificacin y adaptacin del SGML y permite definirla gramtica de lenguajes especficos (de la misma manera que HTML es a suvez un lenguaje definido por SGML).
Ejemplos:
Crear en VS2005 un archivo XML de empleados.
Ver archivo en:
El navegador Web.
En Excel.
UNIDAD II DESARROLLO DE APLICACIONES
Desarrol lo de apl icaciones Web
El diseo y desarrollo de aplicaciones web consiste en implementar sus
necesidades, objetivos o ideas en Internet utilizando las tecnologas ms
idneas segn su proyecto.Las aplicaciones web ofrecen servicios a los usuarios de Internet que
acceden utilizando un navegador web como Internet Explorer, Firefox o
Safari entre otros, dirigindose a una direccin de Internet donde obtendrn
los servicios que buscan.
Las aplicaciones web pueden ser de acceso pblico como tiendas virtuales,
diarios digitales, portales de Internet, o de acceso restringido como son las
intranets para mejorar las gestiones internas de su empresa como el reporte
de horas de su personal, gestin de proyectos y tareas, control de presencia,
gestores documentales, o el uso de extranets para aumentar y mejorar elservicio con sus distribuidores, clientes, proveedores, comerciales y
colaboradores externos.
Cada vez es ms necesario adaptar el software y los sistemas online a la
lgica de negocio de cada cliente. Por este motivo, no slo es necesario que
su empresa disponga de una web corporativa, un comercio virtual o una
-
7/22/2019 Unidad 1 Web
17/150
extranet para gestionar los pedidos de sus clientes o distribuidores, sino
que es muy aconsejable una integracin total con sus sistemas propietarios
de facturacin, nminas, proveedores, previsiones, etc. para obtener un
sistema integral y eficiente en todas las reas de su corporacin.
No existe hoy en da una solucin global para desarrollos de aplicacionesweb que d respuesta a todas las necesidades de una empresa. Por ello, las
infraestructuras diseadas para Internet se componen de mltiples
soluciones de desarrollo para aplicaciones web.
Un mal anlisis inicial de la aplicacin web a desarrollar una mala
seleccin de las distintas tecnologas que la componen pueden complicar de
forma importante el proceso de integracin, condicionando la estrategia de
negocio o llegando incluso a hacerla inviable.
La presente unidad tiene por objetivo: que el lector comprenda los
conceptos y elementos bsicos que involucra el desarrollo de aplicaciones.
Tecnologa.
Las tecnologas ms utilizadas en desarrollos web son las siguientes:
Tecnologa Adobe Flash, Paseos virtuales (QuickTime, Flash, Java),
Streaming de audio y video (Real, Windows Media, Flash Video)
Bases de datos
Microsoft SQL Server
MySQL
Oracle
Desarrollo Web
ASP
ASP.NET
PHP
JSP
XML
-
7/22/2019 Unidad 1 Web
18/150
HTML
CSS
JAVASCRIPT
JAVA
Plataforma de desarrollo
Windows
Linux
Macintosh
PDA (Palm, Pocket PV)
2.1 Arquitectura de Aplicaciones Web
La arquitectura tradicional de cliente/servidor tambin es conocida como
arquitectura de dos capas. Requiere una interfaz de usuario que se instala y
se ejecuta en una PC o estacin de trabajo y enva solicitudes a un servidor
para ejecutar operaciones complejas.
Por ejemplo, una estacin de trabajo utilizada como cliente puede ejecutar
una aplicacin de interfaz de usuario que interroga a un servidor central de
bases de datos.
-
7/22/2019 Unidad 1 Web
19/150
Ventajas del Sistema de Dos Capas:
El desarrollo de aplicaciones en un ambiente de dos capas funciona
adecuadamente, pero no es necesariamente lo ms eficiente. Las
herramientas para el desarrollo con dos capas son robustas y ampliamente
evaluadas.
Las tcnicas de ingeniera de software de prototipo se emplean fcilmente.
Las soluciones de dos capas trabajan bien en ambientes no dinmicos
estables, pero no se ejecutan bien en organizaciones rpidamente
cambiantes.
Desventajas del sistema de dos capas:
Los ambientes de dos capas requieren control excesivo de las versiones y
demandan esfuerzo de distribucin de la aplicacin cuando se les hacen
cambios. Esto se debe al hecho de que la mayora de la aplicacin lgica
existe en la estacin de trabajo del cliente.
La seguridad del sistema en un diseo de dos capas es compleja y amenudo requiere administracin de las bases de datos; esto es debido al
nmero de dispositivos con acceso directo al ambiente de esas bases de
datos.
Las herramientas del cliente y de la base de datos, utilizadas en diseos de
dos capas, constantemente estn cambiando. La dependencia a largo plazo
-
7/22/2019 Unidad 1 Web
20/150
de cualquier herramienta, puede complicar el escalamiento futuro o las
implementaciones.
Arquitectura de tres capas
La arquitectura de tres capas es un diseo reciente que introduce una capa
intermedia en el proceso. Cada capa es un proceso separado y bien definido
corriendo en plataformas separadas. En la arquitectura tradicional de tres
capas se instala una interfaz de usuario en la computadora del usuario final
(el cliente).
La arquitectura basada en Web transforma la interfaz de bsqueda existente
(el explorador de Web), en la interfaz del usuario final.
La arquitectura de las aplicaciones Web suelen presentar un esquema de
tres niveles.
El primer nivel consiste en la capa de presentacin que incluye no slo el
navegador, sino tambin el servidor web que es el responsable de presentar
los datos un formato adecuado.
El segundo nivel est referido habitualmente a algn tipo de programa o
script.
Finalmente, el tercer nivel proporciona al segundo los datos necesarios para
su ejecucin. Una aplicacin Web tpica recoger datos del usuario (primer
nivel), los enviar al servidor, que ejecutar un programa (segundo y tercer
nivel) y cuyo resultado ser formateado y presentado al usuario en el
navegador (primer nivel otra vez).
-
7/22/2019 Unidad 1 Web
21/150
Las diferentes capas suelen ser:
Ventajas de la arquitectura de tres capas:
Las llamas de la interfaz del usuario en la estacin de trabajo, al servidor de
capa intermedia, son ms flexibles que en el diseo de dos capas, ya que la
estacin solo necesita transferir parmetros a la capa intermedia.
Con la arquitectura de tres capas, la interfaz del cliente no es requerida para
comprender o comunicarse con el receptor de los datos. Por lo tanto, esaestructura de los datos puede ser modificada sin cambiar la interfaz del
usuario en la PC.
El cdigo de la capa intermedia puede ser reutilizado por mltiples
aplicaciones si est diseado en formato modular. La separacin de roles en
tres capas, hace ms fcil reemplazar o modificar una capa sin afectar a los
mdulos restantes.
-
7/22/2019 Unidad 1 Web
22/150
Desventajas de las Arquitecturas de Tres Capas y basadas en Web.
Los ambientes de tres capas pueden incrementar el trfico en la red y
requiere ms balance de carga u tolerancia a las fallas.
Los exploradores actuales no son todos iguales.
La estandarizacin entre diferentes proveedores ha sido lenta en
desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar
de otro, mientras que cada uno ofrece sus propias y distintas ventajas.
2.2 Lenguajes de Programacin del lado del Cliente
Un lenguaje del lado cliente es totalmente independiente del servidor, lo cual
permite que la pgina pueda ser albergada en cualquier sitio. Pero nuestra
pgina no se ver bien si la computadora cliente no tiene instalados los
plug-in adecuados. El cdigo, tanto del hipertexto como de los scripts, es
accesible a cualquiera y ello puede afectar a la seguridad.
Javascript.
Javascript es un lenguaje de programacin que realiza acciones dentro del
mbito de una pgina web. Su compatibilidad con la mayora de los
navegadores modernos, lo posiciona como el lenguaje de programacin dellado del cliente ms utilizado. Con Javascript podemos crear efectos
especiales en las pginas y definir interaccin con el usuario.
El navegador (browser) del cliente es el encargado de interpretar las
instrucciones Javascript y ejecutarlas para realizar estos efectos e
interactividades, de modo que el mayor recurso, y tal vez el nico, con que
cuenta este lenguaje es el propio navegador.
Entre las acciones tpicas que se pueden realizar en Javascript tenemos dos
vertientes. Por un lado los efectos especiales sobre pginas web, para crear
contenidos dinmicos y elementos de la pgina que tengan movimiento,
cambien de color o cualquier otro dinamismo.
Por el otro, javascript nos permite ejecutar instrucciones como respuesta a
las acciones del usuario (eventos), con lo que podemos crear pginas
interactivas con programas como calculadoras, agendas, o tablas de clculo.
-
7/22/2019 Unidad 1 Web
23/150
Javascript es un lenguaje con muchas posibilidades, es orientado a objetos,
con funciones, estructuras de datos complejas, etc.
Adems, Javascript pone a disposicin del programador todos los
elementos que forman la pgina web, para que ste pueda acceder a ellos y
modificarlos dinmicamente.
JavaScript no permite dos de las caractersticas clsicas de los lenguajes
orientados a objetos (herencia y polimorfismo), pero permite la creacin y
manipulacin de objetos sencillos, y la definicin de mtodos y propiedades
para dichos objetos.
JavaScript soporta el Modelo de Objetos de Documento (DOM, Document
Object Model). El DOM es el conjunto de objetos predefinidos que nos
permite acceder a todos los elementos de una pgina y a ciertas
caractersticas especficas del navegador.
Visual Basic Script
Es un lenguaje de programacin de scripts del lado del cliente, slo
compatible con Internet Explorer. Es por ello se usa poco. Est basado en
Visual Basic de Microsoft. Tanto su sintaxis y modo de operacin es una
versin reducida del primero. El modo de funcionamiento de Visual Basic
Script para construir efectos especiales en pginas web es muy similar alutilizado en Javascript y los recursos a los que se puede acceder tambin
son los mismos: el navegador.
Applets de Java
Son programas hechos en Java, que se transfieren con las pginas web y
que el navegador ejecuta en el espacio de la pgina. Los applets son ms
-
7/22/2019 Unidad 1 Web
24/150
difciles de programar que los scripts en Javascript y requerirn
conocimientos medios del lenguaje Java. La principal ventaja de utilizar
applets consiste en que son independientes del navegador, del sistema
operativo y multiplataformas.
Cada sistema operativo dispone de una mquina Virtual de Java que puedeinterpretar los Byte Codes y transformarlos a sentencias ejecutables en el
sistema en cuestin.
Arquitectura de appletviewer
El appletviewer representa la interfaz mnima de navegacin. En la figura se
muestran los pasos que seguira appletviewer para presentarnos el resultado
de la ejecucin del cdigo de nuestra clase.
Esta es una visin simplificada del appletviewer. La funcin principal de esta
aplicacin es proporcionar al usuario un objeto de tipo Graphics sobre el
que dibujar, y varias funciones para facilitar el uso del objeto Graphics.
Ciclo de vida de un Applet
Cuando un Applet se carga en el Applet viewer, comienza su ciclo de vida,
que pasara por las siguientes fases:
Se crea una instancia de la clase que controla el Applet. En el ejemplo de la
figura anterior, sera la clase Hola Mundo.
El Applet se incializa.
-
7/22/2019 Unidad 1 Web
25/150
El Applet comienza a ejecutarse.
El Applet empieza a recibir llamadas. Primero recibe una llamada init
(inicializar), seguida de un mensaje start (empezar) y paint (pintar). Estas
llamadas pueden ser recibidas asncronamente.
Flash
Es un programa multimedia de Adobe que se utiliza para crear
presentaciones animadas. Se trata de una aplicacin del lado del cliente
que es leda por los principales navegadores. Las animaciones se realizan a
partir de vectores y de imgenes en base a pxeles (llamadas raster
graphics) y pueden incluir audio y video. Este programa es uno de los ms
utilizados para animar sitios Web y permitir la interactividad.
Crtica de Steve Jobs
Flash una tecnologa 100% propietaria, argumenta que los estndares web
deben de ser completamente abiertos.
Adobe asevera que los dispositivos que no tienen soporte para Flash, notienen acceso a toda la web, porque ms del 75% del vdeo en Internet es t
basado en Flash". Pero lo que no dicen, es que casi todo ese contenido,
tambin est disponible en formatos ms modernos como el H.264.
Flash ofrece poca seguridad a sus usuarios. Dice que es uno de los
principales culpables que las computadoras Mac fallen. Afirma que han
-
7/22/2019 Unidad 1 Web
26/150
tratado de trabajar conjuntamente con Adobe para corregir los problemas,
pero que estos persisten despus de varios aos. No queremos reducir la
confiabilidad y la seguridad del iPhone, del iPod, o del iPad aadiendo la
tecnologa Flash.
Flash se desempea pobremente en los dispositivos porttiles, dado queconsume mucha energa, adems de que tambin, consume demasiados
recursos aunque el hardware sea capaz de reproducir dicho contenido.
2.3 Lenguajes de Programacin del lado del servidor
Existe una multitud de lenguajes concebidos o no para Internet. Cada uno deellos explota ms a fondo ciertas caractersticas que lo hacen ms o menostiles para desarrollar distintas aplicaciones.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web,justo antes de que se enve la pgina a travs de Internet al cliente. Laspginas que se ejecutan en el servidor pueden realizar accesos a bases dedatos, conexiones en red, y otras tareas para crear la pgina final que ver elcliente.
Los lenguajes de lado servidor ms ampliamente utilizados para eldesarrollo de pginas dinmicas son el ASP, JSP, PERL y PHP.
ASP.NET (Active Server Pages).
Lenguaje comercializado por Microsoft, y usado por programadores paradesarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de latecnologa ASP, fue lanzada al mercado mediante una estrategia de mercadodenominada .NET.
Se desarrollado para resolver las limitantes que brindaba tu antecesor ASP.Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Losarchivos cuentan con la extensin (aspx). Para su funcionamiento de laspginas se necesita tener instalado IIS con el Framework .Net. MicrosftWindows 2003 incluye este framework, solo se necesitar instalarlo enversiones anteriores.
El lenguaje ASP consiste en una serie de clases .NET utilizadas para crearaplicaciones Web, tanto del lado cliente (Web Form) como del lado servidor(Web Service). La integracin de nativa .NET Framework con el sistemaoperativo Windows Server 2003 hace que su ejecucin sea ms estable yrpida que otros lenguajes de programacin.
-
7/22/2019 Unidad 1 Web
27/150
Las pginas creadas con la tecnologa ASP.NET funcionan en todo tipo denavegadoresincluyendo Netscape, Safari y Internet Explorer.
Actualizaciones Dinmicas Soporte de servicios web XML Conexiones deltipo DSN, o sin utilizacin de DSN, para acceder a fuentes de datos ODBC.
Ventajas:
Completamente orientado a objetos.
Controles de usuario y personalizados.
Divisin entre la capa de aplicacin o diseo y el cdigo.
Facilita el mantenimiento de grandes aplicaciones.
Incremento de velocidad de respuesta del servidor.
Mayor velocidad.
Mayor seguridad.
Desventajas:
Mayor consumo de recursos.
Tecnologa propietaria.
Hospedaje de sitios web costosos.
JSP
Es un lenguaje para la creacin de sitios web dinmicos, acrnimo de JavaServer Pages. Est orientado a desarrollar pginas web en Java. JSP es unlenguaje multiplataforma.
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares alas de ASP.NET, desarrollado para la creacin de aplicaciones web potentes.
Posee un motor de pginas basado en los servlets de Java. Para sufuncionamiento se necesita tener instalado un servidor Tomcat.
Caractersticas:
Cdigo separado de la lgica del programa.
Las pginas son compiladas en la primera peticin.
-
7/22/2019 Unidad 1 Web
28/150
Permite separar la parte dinmica de la esttica en las pginas web.
Los archivos se encuentran con la extensin (jsp).
El cdigo JSP puede ser incrustado en cdigo HTML.
Los elementos que pueden ser insertados en las pginas JSP son lossiguientes:
Cdigo: se puede incrustar cdigo Java.
Directivas: permite controlar parmetros del servlet.
Acciones: permite alterar el flujo normal de ejecucin de una pgina.
Ventajas:
Ejecucin rpida del servlets.
Crear pginas del lado del servidor.
Multiplataforma.
Cdigo bien estructurado.
Integridad con los mdulos de Java.
La parte dinmica est escrita en Java.
Desventajas:
Complejidad de aprendizaje.
PERL
Perl (Practical Extraction and Report Language) es un lenguaje deprogramacin desarrollado por Larry Wall (lwall at netlabs.com) inspirado enotras herramientas de UNIX como son: sed, grep, awk, c-shell, para la
administracin de tareas propias de sistemas UNIX. No establece ningunafilosofa de programacin concreta. No se puede decir que sea orientado aobjetos, modular o estructurado aunque soporta directamente todos estosparadigmas; su punto fuerte son las labores de procesamiento de textos yarchivos. Lenguaje de programacin basado en scripts portable a casicualquier plataforma. Es muy utilizado para escribir CGIs. Uno de suselementos ms potentes son las expresiones regulares, que a partir de su
-
7/22/2019 Unidad 1 Web
29/150
versin en Perl han sido adoptadas por otros lenguajes y plataformas como.NET o Javascript.
Ventajas
Es un buen lenguaje pegamento. Se pueden juntar varios programas deuna forma sencilla para alcanzar una meta determinada. Los usuarios deWindows agradecern esta propiedad ya que normalmente adolecen de unbuen lenguaje tipo script.
Es relativamente rpido para un lenguaje tipo script.
Est disponible en mltiples plataformas y sistemas operativos (UNIX, Linuxy Windows). Un programa que se escriba teniendo en cuenta lacompatibilidad puede ser escrito en una plataforma y ejecutado en otra.
El desarrollo de aplicaciones es muy rpido.
Hay una coleccin enorme de mdulos que pueden ser incorporados acualquier script de Perl. Estn disponibles en el CPAN (ComprehensivePerl Archive Network). En particular existe una extensin para clculonumrico denominada PDL.
Perl es gratuito. Mucho ms que eso, es Software Libre. Esto quiere decirque el cdigo fuente est disponible para que cualquiera lo pueda ver omodificar, y lo que es ms importante, siempre lo estar. Aunque nuncapretendas cambiar el cdigo, es importante disponer de la posibilidad de
hacerlo, ya que siempre se podr contratar a una tercera persona para que lomodifique en el caso de que haya un error, y debera ser posiblesolucionarlo.
Le otorga al programador mucha libertad para que haga el programa comoquiera. Tal como dice el eslogan de Perl Hay ms de una forma de hacerlo.
Desventajas
Es lento para algunas aplicaciones, como programacin a bajo nivel,escribiendo un driver para una aplicacin o corriendo modelos numricosde clculo intensivo. Si bien se pueden insertar subrutinas FORTRAN o C enPerl, teniendo lo mejor de los dos mundos, pero con algo ms decomplejidad. La libertad que se le otorga al programador puede significarque el resultado sea un programa ilegible. Si no se escribe con cuidadopuede llegar a ser difcil de leer. De hecho hay un concurso de Perlofuscado.
-
7/22/2019 Unidad 1 Web
30/150
Perl es un lenguaje interpretado. Este tema no es tan crtico como suena, losprogramas Perl no corrern mucho ms rpidos cuando se compilen, lanica ventaja est en la desaparicin de la fase inicial de compilacin alcorrer la aplicacin. Utiliza muchos recursos de comput. Esto significa queno es tan ligero como un programa en C, pero en la prctica es ligero
comparado con la potencia de procesamiento de las computadoras actuales.
PHP
PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje deprogramacin del lado del servidor gratuito e independiente de plataforma,rpido, con una gran librera de funciones y mucha documentacin. Fuecreado originalmente en 1994 por Rasmus Lerdorf, pero como PHP estdesarrollado en poltica de cdigo abierto, a lo largo de su historia ha tenidomuchas contribuciones de otros desarrolladores.
El cliente solamente recibe una pgina con el cdigo HTML resultante de laejecucin de la PHP. Como la pgina resultante contiene nicamente cdigoHTML, es compatible con todos los navegadores.
Ventajas: Muy fcil de aprender.
Se caracteriza por ser un lenguaje muy rpido.
Soporta en cierta medida la orientacin a objeto. Clases y herencia.
Es un lenguaje multiplataforma: Linux, Windows, entre otros.
Capacidad de conexin con la mayora de los manejadores de base de datos:MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.
Capacidad de expandir su potencial utilizando mdulos.
Posee documentacin en su pgina oficial la cual incluye descripcin yejemplos de cada una de sus funciones.
Es libre, por lo que se presenta como una alternativa de fcil acceso paratodos.
Incluye gran cantidad de funciones.
No requiere definicin de tipos de variables ni manejo detallado del bajonivel.
Desventajas:
-
7/22/2019 Unidad 1 Web
31/150
Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puedeser ms ineficiente a medida que las solicitudes aumenten de nmero.
La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML yPHP.
La programacin orientada a objetos es an muy deficiente paraaplicaciones grandes.
Dificulta la modularizacin.
Dificulta la organizacin por capas de la aplicacin.
Seguridad:
PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un
servidor web en forma de mdulo o ejecutado como un binario CGIseparado, es capaz de acceder a archivos, ejecutar comandos y abrirconexiones de red en el servidor. Estas propiedades hacen que cualquiercosa que sea ejecutada en un servidor web sea insegura por naturaleza.
PHP est diseado especficamente para ser un lenguaje ms seguro paraescribir programas CGI que Perl o C, y con la seleccin correcta de opcionesde configuracin en tiempos de compilacin y ejecucin, y siguiendoalgunas prcticas correctas de programacin.
2.4 Ambientes para el desarrollo Web
Un entorno de desarrollo integrado (IDE- Integrated Development
Environment -) tambin conocido como entorno de diseo integrado o el
medio ambiente integrado de depuracin es una aplicacin de software que
ofrece servicios integrales a los programadores de computadoras para el
desarrollo de software. Un IDE normalmente se compone de:
Un editor de texto.
Un compilador.
Un intrprete.
Herramientas de automatizacin.
Un depurador.
-
7/22/2019 Unidad 1 Web
32/150
Posibilidad de ofrecer un sistema de control de versiones.
Factibilidad para ayudar en la construccin de interfaces grficas de usuario.
IDE para Php
Existen muchos entornos de desarrollo para PHP en software libre talescomo: Zend Studio, Open Komodo Project, Eclipse + phpEclipse, entre otros.
Dreamweaver de Adobe
Es en una potente y flexible herramienta de desarrollo que inclute
numerosas herramientas para facilitarnos el desarrollo de aplicaciones web.
Dreamweaver permite trabajar con los siguientes modelos de servidor:
ASP JavaScript
ASP VBScript
ASP.NET C#
ASP.NET VB
COLDFUSION
JSP
PHP MySQL
El concepto de sitios en Dreamweaver es bastante til ya que nos permite
mantener un orden lgico/fsico de la estructura de nuestro sitio, enlaces y
recursos que este utiliza, tiene el potencial para encargarse completamente
de los enlaces relativos (recomendado).
Como se menciono Dreamweaver proporciona soporte para variados
modelos de Servidor entregando capacidades de creacin de cdigo
estndar para una serie de funciones como son la insercin, edicin,
eliminacin y consulta de datos, manejo de ciclos y condiciones, incluso
acceso por restringido por password, todo esto de una forma muy bsica,pero sin duda es un primer acercamiento para novatos, lo importante de esto
es que podemos extender esta capacidad mediante nuestros conocimientos
y usar este entorno de desarrollo para facilitarnos la dura tarea de
desarrollar para la Web.
-
7/22/2019 Unidad 1 Web
33/150
Joomla! es un Sistema de Gestin de Contenidos (CMS) premiado
mundialmente, que le ayuda a construir sitios web y otras aplicaciones
online potentes. Lo mejor de todo, es que Joomla es una solucin de cdigo
abierto y est disponible libremente para cualquiera que desee utilizarlo.
Joomla! se utiliza en todo el mundo para generar desde una simple pginaweb personal hasta complejas aplicaciones web corporativas. Entre los
diferentes usos que la gente da a Joomla! estn:
Webs corporativas o portales
Comercio electrnico
Pequeos sitios de negocios
Webs de organizaciones o ONGs
Aplicaciones gubernamentales
Intranets y extranets corporativas
Webs de escuelas o agrupaciones
Pginas personales o familiares
Portales de comunidades
Revistas y peridicos
Joomla se puede usar para gestionar fcilmente cualquiera de los aspectos
de un sitio web, desde la introduccin de contenidos e imgenes hasta la
actualizacin de un catlogo de productos o la realizacin de reservaciones
online.
WordPress
WordPress es un sistema de gestin de contenido enfocado a la creacin de
blogs (sitios web peridicamente actualizados). Desarrollado en PHP y
MySQL, bajo licencia GPL y cdigo modificable, tiene como fundador a Matt
Mullenweg.
WordPress fue creado a partir del desaparecido b2/cafelog y se ha
convertido junto a Movable Type en el CMS ms popular de la blogosfera.
Las causas de su enorme crecimiento son, entre otras, su licencia, su
facilidad de uso y sus caractersticas como gestor de contenidos.
-
7/22/2019 Unidad 1 Web
34/150
2.5 Metodologas para desarrollo de aplicaciones Web
El creciente desarrollo del comercio electrnico as como el desplazamiento
de las distintas organizaciones hacia la Web ha trado en la actualidad una
constante evolucin de las aplicaciones Web. Cada da se incrementan las
transacciones financieras, la transferencia de informacin confidencial y
ejecucin de procesos online, entre otros, las cuales exigen funcionalidad,
confiabilidad, usabilidad y eficiencia por mencionar algunas caractersticas
de calidad. Esta relevancia de la economa genera grandes desafos en las
aplicaciones Web que son los de controlar y mejorar su calidad.
Aunque las aplicaciones Web estn creciendo rpidamente tanto en uso
como en aceptacin, su desarrollo tiende a ser ad hoc, resultando en
aplicaciones de pobre calidad. La mayora de los desarrolladores Web ponen
poca atencin en la elicitacin y anlisis de requisitos, as como en las
metodologas y procesos de desarrollo. A dems los desarrolladores de
aplicaciones confan excesivamente en el conocimiento y experticia de los
desarrolladores individuales y sus prcticas de desarrollo individual ms
bien que en las prcticas estndar. No obstante, son las mismas
metodologas de desarrollo las que no tratan de manera adecuada y
profunda los atributos de calidad. Estas situaciones traen como
consecuencia que los atributos de calidad de los sistemas basados en laWeb tales como la funcionalidad, confiabilidad, mantenibilidad, usabilidad y
portabilidad no se les da la debida consideracin que se merecen durante el
proceso de desarrollo.
En la ingeniera software se denomina aplicacin web a aquellas
aplicaciones que los usuarios pueden utilizar accediendo a un servidor web
a travs de Internet o de una intranet mediante un navegador. En otras
palabras, es una aplicacin software que se codifica en un lenguaje
soportado por los navegadores web en la que se confa la ejecucin al
navegador.
Las aplicaciones web son populares debido a lo prctico del navegador web
como cliente ligero, as como a la facilidad para actualizarlas y mantenerlas.
Algunas aplicaciones son: los webmails, wikis, weblogs, tiendas en lnea,
intranet.
-
7/22/2019 Unidad 1 Web
35/150
Ingeniera Web es el proceso utilizado para crear, implantar y mantener
aplicaciones y sistemas Web de alta calidad. Esta breve definicin nos lleva
a abordar un aspecto clave de cualquier proyecto como es determinar que
tipo de proceso es ms adecuado en funcin de las caractersticas del
mismo.
Un empleo sistemtico y disciplinado de modelos, mtodos y modelos de
ingeniera de software en la Web para el aseguramiento y control de la
calidad favorece a la compresin y anlisis y potencialmente mejorar los
desarrollos producidos.
El Proceso de Ingeniera Web
Caractersticas como inmediatez y evolucin y crecimiento continuos, nos
llevan a un proceso incremental y evolutivo, que permite que el usuario se
involucre activamente, facilitando el desarrollo de productos que se ajustan
mucho lo que ste busca y necesita.
Segn Pressman, las actividades que formaran parte del marco de trabajo
incluiran las tareas abajo enumeradas. Dichas tareas seran aplicables a
cualquier aplicacin Web, independientemente del tamao y complejidad de
la misma.
Las actividades que forman parte del proceso son: formulacin,
planificacin anlisis, modelado, generacin de pginas, test y evaluacin
del cliente.
-
7/22/2019 Unidad 1 Web
36/150
La formulacin identifica objetivos y establece el alcance de la primera
entrega.
La planificacin genera la estimacin del costo general del proyecto, la
evaluacin de riesgos y el calendario del desarrollo y fechas de entrega.
El anlisis especifica los requerimientos e identifica el contenido.
La Modelado se compone de dos secuencias paralelas de tareas. Una
consiste en el diseo y produccin del contenido que forma parte de la
aplicacin. La otra, en el diseo de la arquitectura, navegacin e interfaz de
usuario.
Es importante destacar la importancia del diseo de la interfaz.
Independientemente del valor del contenido y servicios prestados, una
buena interfaz mejora la percepcin que el usuario tiene de stos.
En la generacin de pginas se integra contenido, arquitectura, navegacin e
interfaz para crear esttica o dinmicamente el aspecto ms visible de las
aplicaciones, las pginas.
El Test busca errores a todos lo niveles: contenido, funcional, navegacional,
rendimiento, etc. El hecho de que las aplicaciones residan en la red, y que
interoperen en plataformas muy distintas, hace que el proceso de test sea
especialmente difcil.
Finalmente, el resultado es sometido a la evaluacin del cliente.
Control y Garanta de la Calidad
Una de las tareas colaterales que forman parte del proceso es el Control y
Garanta de la Calidad (CGC). Todas las actividades CGC de la ingeniera
software tradicional como son: establecimiento y supervisin de estndares,
revisiones tcnicas formales, anlisis, seguimiento y registro de informes,
etc, son igualmente aplicables a la Ingeniera Web. Sin embargo, en la Web
toman especial relevancia para valorar la calidad aspectos como:
Usabilidad
Funcionabilidad
Fiabilidad
Seguridad
Eficiencia
-
7/22/2019 Unidad 1 Web
37/150
Mantenibilidad
Control de la Configuracin
Establecer mecanismos adecuados de control de la configuracin para la
Ingeniera Web es uno de los mayores desafos a los que esta nueva
disciplina se enfrenta. La Web tiene caractersticas nicas que demandan
estrategias y herramientas nuevas. Hay cuatro aspectos importantes a tener
en cuenta en el desarrollo de tcticas de control de configuracin para la
Web.
Contenido: Considerando la dinamicidad con la que el contenido se genera,
es tarea compleja organizar racionalmente los objetos que forman la
configuracin y establecer mecanismos de control.
Personal: Cualquiera realiza cambios. Hay mucho personal no especializado
que no reconoce la importancia que tiene el control del cambio.
Escalabilidad: Es comn encontrar aplicaciones que de un da para otro
crecen considerablemente.
Sin embargo, las tcnicas de control no escalan de forma adecuada.
2.6 Aspectos de Seguridad
Hoy en da las aplicaciones web son uno de los servicios ms utilizados ya
sea accediendo a un servidor web a travs de internet o de una intranet.
Los lenguajes de programacin web son verstiles, sencillos de usar y
permiten crear soluciones de gran envergadura.
Las aplicaciones escritas en estos lenguajes estn expuestas a diversas
amenazas si no se toman las medidas adecuadas para evitarlo, por este
motivo se resalta la importancia de la formacin en seguridad que deberan
de recibir todos los programadores.
Si no se procede de forma correcta, las aplicaciones web desarrolladas en
estos lenguajes pueden servir como puerta de entrada de un intruso a la red
de la empresa, por lo que la seguridad de este tipo de aplicaciones tiene que
ser tomada como prioritaria para no exponer la seguridad de su negocio.
-
7/22/2019 Unidad 1 Web
38/150
Esta formacin est orientada a que los equipos de programadores
conozcan y utilicen las buenas prcticas en el diseo y desarrollo de
aplicaciones para evitar vulnerabilidades de seguridad.
El objetivo del mismo es conocer como proteger la aplicacin contra los
fallos ms comunes (SQL Injection, XSS, Command Execution, FileInclusion).
Las fallas de seguridad ms comunes son:
Cross Site Scripting (XSS). Las vulnerabilidades de XSS originalmente
abarcaban cualquier ataque que permitiera ejecutar cdigo de "scripting",
como VBScript o JavaScript, en el contexto de otro sitio web (y
recientemente esto se podra clasificar ms correctamente como "distintos
orgenes").
Injection Flaws
Insecure Remote File Include
Insecure Direct Object Reference
Cross Site Request Forgery (CSRF)
Information Leakage and Improper Error Handling
Broken Authentication and Session Management
Insecure Cryptographic Storage
Insecure Communications
Failure to Restrict URL access
-
7/22/2019 Unidad 1 Web
39/150
UNIDAD III PROGRAMACION DEL LADO DEL SERVIDOR
3.1. Procesamiento del lado del servidor.
La Programacin del lado del servidor es una tecnologa que consiste en elprocesamiento de una peticin de un usuario mediante la interpretacin de unscript en el servidor web para generar pginas HTML dinmicamente comorespuesta.
Todo lo que suceda dentro del servidor es llamado procesamiento del lado del
servidor, o server-side processing. Cuando tu aplicacin necesita interactuar conel servidor (por ejemplo, para cargar o guardar datos), sta realiza una peticin dellado del cliente (client-side request) desde el navegador, a travs de la redusando invocaciones remotas a mtodos (remote procedure call, RPC).Mientrasse est procesando una llamada RPC, tu servidor est ejecutando cdigo del ladodel servidor.
La utilizacin de las diferentes aplicaciones o servicios de Internet se lleva a caborespondiendo al llamado modelo cl iente-servidor.
Cuando se utiliza un servicio en Internet, como consultar una base de datos,transferir un archivo o participar en un foro de discusin, se establece un procesoen el que entran en juego dos partes. Por un lado, el usuario, quien ejecuta unaaplicacin en procesador local: el denominado programa cl iente.Este programacliente se encarga de ponerse en contacto con el procesador remotoparasolicitar el servicio deseado. El procesadorremotopor su parte responder a losolicitado mediante un programa que est ejecutando. Este ltimo se denomina
programa servidor. Los trminos cl ientey servidorse utilizan tanto para referirsea los programas que cumplen estas funciones, como a las computadoras dondeson ejecutados esos programas.
El programa o los programas cliente que el usuario utiliza para acceder a losservicios de Internet realizan dos funciones distintas. Por una parte, se encargan
-
7/22/2019 Unidad 1 Web
40/150
de gestionar la comunicacin con el computador servidor, de solicitar un servicioconcreto y de recibir los datos enviados por ste; y por otra, es la herramienta quepresenta al usuario los datos en pantalla y que le ofrece los comandos necesariospara utilizar las prestaciones que ofrece el servidor.
Cuando nosotros seleccionamos un enlace hipertexto, en realidad lo que pasa esque establecemos una peticin de un archivo HTML residente en el servidor (unacomputadora que se encuentra continuamente conectado a la red) el cual esenviado e interpretado por nuestro navegador (el cliente).
As pues, podemos hablar de lenguajes de lado servidor que son aquelloslenguajes que son reconocidos, ejecutados e interpretados por el propio servidor yque se envan al cliente en un formato comprensible para l, por ejemplo: ASP,PHP, JSP.
Por otro lado, los lenguajes de lado cliente (entre los cuales no slo se encuentrael HTML sino tambin el Java y el JavaScript los cuales son simplemente incluidosen el cdigo HTML) son aquellos que pueden ser directamente "digeridos" por elnavegador y no necesitan un pretratamiento.
-
7/22/2019 Unidad 1 Web
41/150
-
7/22/2019 Unidad 1 Web
42/150
las mejores herramientas para el desarrollo web es necesario pensar en dondeestar alojado nuestro sitio (hosting).
El hosting o alojamiento web es un sistema esencial para el funcionamiento de lossitios en Internet y es el lugar donde fsicamente reside nuestra informacin. Si
tenemos recursos ilimitados para tener nuestro propio sitio entonces tendramosque hacer una gran investigacin para seleccionar las herramientas mssofisticadas. El lugar donde fsicamente se almacenara nuestra informacindetermina los lenguajes soportados (cliente, servidor), el gestor de la base dedatos y las prestaciones que podremos ofrecer a nuestros futuros usuarios.
Las fases de un desarrollo web, as como los lenguajes de programacin usados,son muy extensos y variados, y por ello necesitamos herramientas especficaspara cada una de ellas. Conoceremos a continuacin las principales herramientasexistentes para poder desarrollar fcilmente un proyecto web.
En el desarrollo web tenemos unas herramientas para el diseo, otras para lamaquetacin, otras para la programacin, y para la depuracin. Todas lasherramientas que usemos son muy importantes, desde el sistema operativo hastael comando ms insignificante, y por ello debemos elegir la ms adecuada anuestras necesidades y capacidades.
Sistema Operativo
Para desarrollar una web, lo primero que necesitamos es un Sistema Operativo,como es lgico, y su eleccin no es tan trivial. Hay que tener en cuenta lasaplicaciones de las que dispone el Sistema Operativo y sus costos.
Si pensamos desarrollar en .NET este solo es soportado por windows y los costosde hospedaje son ms caros que los que soportan Linux.
Fases de desarrollo de una web
Para elegir las herramientas a utilizar, antes debemos identificar las fases delproceso que forman el ciclo de vida de un desarrollo web.
-
7/22/2019 Unidad 1 Web
43/150
Diseo: Consiste en crear esbozos de la web final mediante una herramientagrfica, como Photoshop.
Maquetacin HTML/CSS: Consiste en convertir los esbozos creados en la faseanterior en plantillas HTML, su respectiva hoja de estilos, y las imgenes usadas.
Es posible saltarse la fase anterior para comenzar directamente con esta fase,dependiendo de si dominamos herramientas como Photoshop o no.
Programacin cliente: Consiste bsicamente en JavaScript. Existen muchaslibreras de distribucin libre como JQUERY que nos aportan verdaderas joyaspara el desarrollo.
Programacin servidor: En esta fase, que se desarrolla junto con la anterior,crearemos la aplicacin web en un lenguaje de servidor, como puede ser PHP,
ASP .NET, Python, Perl, Java, etc.
Depuracin:Esta fase enlaza la anterior con la siguiente, y es donde haremos laspruebas unitarias, aserciones, trazas, etc.
Pruebas en local:En nuestro servidor local haremos todas las pruebas posibles.Por ejemplo usando wampServer.
Subir archivos al hosting: Dependiendo del hosting, podremos usar FTP, SSH,aconsejo usar cute FTP es una herramienta confiable y verstil.
Pruebas en hosting: Realizaremos las ltimas pruebas en el servidor del hostingpara comprobar que el cambio de servidor no ha afectado a nada. Para evitarproblemas, nuestro servidor local debe tener exactamente la misma configuracinque el servidor del hosting. Recuerde probar que sus cdigos sean compatibles almenos con Firefox, Safari e Internet Explorer.
3.3. Operadores
Los operadores constituyen elementos esenciales de cualquier lenguaje de
programacin. Con ellos podemos asignar, unir, cambiar o comparar valores dedatos, cambiar el flujo del programa, etc.
-
7/22/2019 Unidad 1 Web
44/150
Los operadores son smbolos que representan operaciones sobre un valor. Vamosa ver a continuacin los operadores admitidos por PHP agrupados segn suutilidad.
Operador de asignacin
El smbolo = permite asignar valores a variables:
1
2
3
4
5
6
El operador.=, agrega valores al contenido de una variable, es equivalente a $var= $var + 'nuevo valor';
1
2
3
4
5
-
7/22/2019 Unidad 1 Web
45/150
Operador de concatenacin
Usando el smbolo. Concatenamos cadenas
1
2
3
4
5
6
-
7/22/2019 Unidad 1 Web
46/150
Operador Ejemplo Resultado
Multiplicacin $var1 * $var2 50
Divisin $var1 / $var2 2
Mdulo $var1 % $var2 0
Operadores abreviados o combinados
Una forma habitual de modificar el contenido de las variables es mediante losoperadores combinados. La siguiente tabla resume los operadores de asignacincombinados
Operador Ejemplo Descripcin
+= $variable += 10 $variable = $variable + 10;
-= $variable -= 10 $variable = $variable - 10;
*= $variable *= 10 $variable = $variable * 10;
/= $variable /= 10 $variable = $variable / 10;
%= $variable %= 10 $variable = $variable % 10;
.=$variable .="concatenar"
Concatena las cadenas $variable y"concatenar"
-
7/22/2019 Unidad 1 Web
47/150
Ejemplo: Tabla multiplicar usando +=
1
2
3
4
5
67
8
9
10
11
1213
14
15
16
17
18
19
20
21
-
7/22/2019 Unidad 1 Web
48/150
22
23
24
echo"
";
echo"
";
Regresar?>
Operadores de incremento - decremento
PHP ofrece soporte de operadores de pre- y post- (incremento o decremento),estilo del lenguaje C y Java. Los smbolos ++ y -- aplicados a una variable,
permiten incrementar o decrementar su valor. Su efecto es distinto segn seempleen precediendo o siguiendo el nombre de la variable.
Operador Ejemplo Efecto
Pre-incremento ++$a Incrementa $a en uno y despus devuelve a.
Post-incremento $a++ Devuelve $a y despus incrementa $a en uno.
Pre-decremento --$aDecrece el valor de $a en uno y despus devuelve$a.
Post-decremento
$a-- Devuelve $a y despus decrece su valor en uno.
Ejemplo: Operadores de Post y Pre incremento -- decremento
Los operadores de incremento/decremento no afectan a los valores booleanos.
-
7/22/2019 Unidad 1 Web
49/150
Decrementar valores NULL tampoco tiene efecto, aunque al incrementarlos suresultado es 1.
Pruebe introducir una letra que sucede.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-
7/22/2019 Unidad 1 Web
50/150
23
24
echo"
";
echo"
";
Regresar?>
Operadores Lgicos
Los operadores lgicos o booleanos se utilizan conjuntamente con expresionesque devuelven valores lgicos. Con ellos es posible combinar condiciones yevaluarlas en una sola expresin. La sintaxis de estos operadores es la siguiente:
Operador Ejemplo Cierto si:
&& $a && $b
Ambos son ciertos
and $a and $b
|| $a || $b
Si uno o ambos es cierto
or $a or $b
xor $a xor $b Solo si uno de los dos es cierto.
! !$a Si $a es Falsa
Ejemplo: Clasificacin de huracanes segn la escala Saffir-Simpson
1
2
-
7/22/2019 Unidad 1 Web
51/150
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$velocidad>= 119) {
echomensaje();
if(($velocidad>= 119) && ($velocidad= 154) && ($velocidad= 178) && ($velocidad= 210) && ($velocidad= 250){
$categoria= 5;
}
$imagen= "";
$fila= " $velocidad "; //construyendo la ltima fila
$fila.= "".$categoria."";
$efecto= damages($categoria);
$fila.= "$efecto";
$fila.= "".$imagen."";
echo$fila;
} else{
echo"
Falta informacin as no puedes ejecutar
";}
?>
-
7/22/2019 Unidad 1 Web
52/150
Operador de ejecucin
PHP soporta un operador de ejecucin: el apstrofe invertido (``). PHP intentar
ejecutar la instruccin contenida dentro de los apstrofes invertidos como si fueraun comando del shell; y su salida devuelta como el valor de esta expresin (i.e., notiene por qu ser simplemente volcada como salida; puede asignarse a unavariable).
Ejemplo: Operador de ejecucin
La lnea 2 carga la configuracin del servidor webLa lnea 4 asigna al variable entorno el contenido del subdirectorio.
Es equivalente a la funcin shell_exec y por defecto est inhabilitado su uso siphp esta configurado para ejecutarse en safe_mode.
1
23
4
5
6
Precedencia de operadores
Cuando una expresin est formada por ms de un operador del mismo tipo, PHPla evala de izquierda a derecha, pero cuando creamos expresiones que utilizan
-
7/22/2019 Unidad 1 Web
53/150
ms de un operador diferente, no siempre evala estas expresiones de la mismaforma.
La precedencia de operadores especfica cmo se agrupan las expresiones paraser evaluadas. La precedencia relativa de los operadores se puede modificarmediante parntesis en las expresiones que se desea evaluar a criterio delprogramador.
A continuacin se presenta en la tabla la precedencia de los operadores de menora mayor.
Asociatividad Operadores
Izquierda ,
Izquierda Or
Izquierda Xor
Izquierda And
Derecha Print
Izquierda = += -= *= /= .= %= &= |= ^= ~= =
Izquierda ? :
Izquierda ||
Izquierda &&
Izquierda |
-
7/22/2019 Unidad 1 Web
54/150
Asociatividad Operadores
Izquierda ^
Izquierda &
no asociativo == != ===
no asociativo =
Izquierda
Izquierda + - .
Izquierda * / %
Derecha ! ~ ++ -- (int) (double) (string) (array) (object) @
Derecha [
no asociativo New
3.4. Sentencias de control
Las sentencias de control permiten ejecutar bloque de cdigos dependiendo decondiciones. La evaluacin de dichas condiciones retorna uno de dos valoresverdaderoo falso. Para PHP el 0 es equivalente a falsoy cualquier otro nmeroes verdadero.
if...else
-
7/22/2019 Unidad 1 Web
55/150
La sentencia if...elsepermite ejecutar un bloque de instrucciones si la condicin esverdaderay otro bloque de instrucciones si sta es falsa. Es importante tener encuenta que la condicin que evaluemos ha de estar encerrada entre parntesis(esto es aplicable a todas las sentencias de control).
1
2
3
4
5
if(condicin) {
//Se ejecuta si la condicin es VERDADERA
} else{
//Se ejecuta si la condicin es FALSA
}
Ejemplo: Determinar si nes par o impar
El vector $_POST recupera los datos del formulario (Lneas 2 y 3).
La funcion isset determinan si la variable tomo valor (Lneas 4 y 5).
Note que en la lnea 6 se usa el operador == para comparar.
-
7/22/2019 Unidad 1 Web
56/150
echo"".$cadena."
";}
?>
RegresarPar o impar
n
Ejemplo: Construir un programa que capture un deporte y despliegue dosimplementos deportivos apropiados.
isset es una funcin PHP que regresaverdaderosi una variable tomo valor
-
7/22/2019 Unidad 1 Web
57/150
$_SERVER['REQUEST_METHOD'] mtodo de peticin se us paraacceder a la pgina
unset destruye una variable especificada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-
7/22/2019 Unidad 1 Web
58/150
21
22
Implementos deportivos
Deporte
Basketball
Bisbol
Ftbol
Estructuras de control repetitivas/interactivas
A menudo es necesario ejecutar una instruccin o un bloque de instrucciones msde una vez.
Ejemplo:
-
7/22/2019 Unidad 1 Web
59/150
for
El bucleforresulta muy til cuando debemos ejecutar un bloque de cdigo acondicin de que una variable se encuentre entre un valor mnimo y otro mximo.El bucle forse puede romper mediante la sentencia break.
Ejemplo:
1
2
3
4
5
6
7
8
9
Ejemplo: Calcular una tabla multiplicar. La seleccin de la tabla se hace mediantela generacin de un nmero aleatorio.
1
2
3
4
5
-
7/22/2019 Unidad 1 Web
60/150
6
7
8
9
10
11
12
$r= $tabla*$i;
$html.= "$tabla*$i";
$html.= "=$r";
$html.= '';
}
echo$html.'';
?>
While
La sentencia while ejecuta un bloque de cdigo mientras se cumpla unadeterminada condicin. Podemos romper un bucle while utilizando la sentenciabreak.
El siguiente cdigo dado por la formula abajo mencionada, calcula el factorial de n.El valor de n debe ser menor o igual a 69 por el tipo de variables que maneja PHP.
La funcin number_format nos permite formatear los nmeros con comas para
separar los miles (Lnea 15).
-
7/22/2019 Unidad 1 Web
61/150
$n= $_POST['n'];
if($n>= 0 && $n= 2 and$n
Factorial con whileen PHP
n
-
7/22/2019 Unidad 1 Web
62/150
El cdigo factorial se puede optimizar y calcularlo para cualquier valor positivomediante otros mecanismos.
Do..While
Esta sentencia es similar awhile, salvo que con esta sentencia primeroejecutamos el bloque de cdigo y despus se evala la condicin, por lo que elbloque de cdigo se ejecuta siempre al menos una vez.
Ejemplo: Calcularemos el factorial de n con la sentencia do while.
-
7/22/2019 Unidad 1 Web
63/150
} elseif( $n< 0 or$n>69) {
$factorial= 'indefenido';
} else{
$i= 2;
$factorial= 1;
do{
$factorial*= $i++;
} while($i
Factorial con dowhileen PHP
-
7/22/2019 Unidad 1 Web
64/150
n
El usar while, do whileo fores principalmente cuestin de preferencia personal.
foreach
El bucle foreachnos permite iterar en cada elemento de un vector, su sintaxis essencilla. Consiste en identificar el ndice de la matriz, mediante la expresion asyseguidamente la variable que identificar el valor del elemento:
Por ejemplo: La tabla general de la Jornada 17 del Torneo Bicentenario 2010FEMEXFUT.
1
2
3
4
-
7/22/2019 Unidad 1 Web
65/150
5
6
7
8
9
10
11
12
13
14
15
$equipo['Santos'] = 28; $equipo['Pumas'] = 28;
$equipo['Morelia'] = 25; $equipo['Cruz Azul'] = 25;
$equipo['Amrica'] = 25; $equipo['Gallos Blancos'] = 21;
$equipo['Toluca'] = 30; $equipo['Pachuca'] = 25;
$equipo['Atlas'] = 24; $equipo['Estudiantes'] = 19;
$equipo['Atlante'] = 16; $equipo['Jaguares'] = 19;
$equipo['Puebla'] = 19; $equipo['San Luis'] = 14;
$equipo['Tigres'] = 19; $equipo['Indios'] = 15;
arsort($equipo);
echo"";
echo"EquipoPuntos";
$i= 1;
foreach( $equipoas$key=>$puntos) {
echo"";
echo"". $key."".$puntos."";
echo"";
}
echo"";
?>
-
7/22/2019 Unidad 1 Web
66/150
3.5. Arreglos
Un arreglo (array) es una estructura de datos que contienen una coleccin dedatos del mismo tipo. Los array se utilizan como contenedorespara almacenardatos relacionados (en vez de declarar variables por separado para cada uno de
los elementos del array).
Los elementos del array se acceden a travs de la posicin que ocupandentro del conjunto de elementos del arreglo. El primer elemento es laposicin cero.
El tamao del array se establece cuando creamos el arreglo, pero estepuede crecer posteriormente en forma ilimitada (- Hasta agotar la RAM -).
Los elementos del arreglo pueden tener diferentes tipos de datos.
Denominamos vector a los array unidimensionales y matricesa los arraybidimensionales. Si bien es posible definir matrices de ms de dos dimensiones
despus de casi tres dcadas programando jams necesite una. Los array seclasifican segn su naturaleza en indexadaso asociativas.
Array indexados
Son aquellos en las que el ndice es un valor numrico.
$estaciones = array('primavera', 'verano', 'otoo', 'invierno');
$sentidos = array('gusto', 'oido', 'olfato', 'tacto', 'vista');
-
7/22/2019 Unidad 1 Web
67/150
$numeros = array(1, 2,30, 50, 60, 70);
Para acceder un elemento del arreglo usaremos la notacin genrica:
$estaciones [$i];
$sentidos [$i];
$nmeros [$i];
Como ndice podemos usar un nmero, una variable o constante que represente el
elemento referenciando. Iniciando desde la posicin cero.Ejemplo: Se declara un arreglo denominado $estacin. El cual se recorremediante un ciclo for.
1
2
3
45
6
Los arrays se ordenan usando las funciones asort(), arsort(),ksort(),rsort(),sort(), uasort()y uksort() segn el tipo de ordenacin.
Ejemplo: Generar un vector aleatorio de tamao ny ordenarlo.
Usamos la funcin mt_randpara generar nmeros aleatorios.
El mtodo sortordena los valores del vector de menor a mayor.
-
7/22/2019 Unidad 1 Web
68/150
HomeOrdenar un vector
n
-
7/22/2019 Unidad 1 Web
69/150
Otra funcin interesante es count que cuenta el nmero de elementos de unarreglo.
Ejemplo. Considere las temperaturas mximas registradas en la ciudad deVeracruz durante el mes de febrero del 2010.
12
3
4
5
6
78
9
10
-
7/22/2019 Unidad 1 Web
70/150
11
12
13
14
echo"Temperatura mnima = $temperatura[0]
";echo"Temperatura media = $promedio
";echo"Temperatura mxima = $maximo
";?>
Ejemplo: Obtener los archivos de un directorio ordenados alfabticamente.
En la lnea 3 se establece un apuntador al directorio indicado mediante lafuncin opendir.
La lnea 4 realiza un ciclo, en el cual la funcin readdir lee uno a uno losarchivos del subdirectorio.
La lnea 5 asigna el archivo a una posicin del vector.
La funcin closediren la lnea 7 cierra el apuntador.
La funcin sort ()lnea 8 ordenada el vector de menor a mayor.
La sentencia de control foreachrecorre el vector.
1
2
3
4
5
6
7
8
-
7/22/2019 Unidad 1 Web
71/150
9
10
11
foreach($archivosas$i=> $valor) {
echo$valor."
";};
?>
Ejemplo:Funciones bsicas en arreglos
En la lnea 2 se declara un array numrico.
Las lneas 3, 9, 14, 20 imprimen el contenido del arreglo mediante la funcinprint_r.
La funcin countcuenta el nmero de elementos del array (Lneas 4, 6, 11,16, 21).
En la lnea 8 se borra uno a uno el contenido del array (unset)
En las lneas 14 y 19 se agregan valores en la siguiente posicin del vector.
En la lnea 18 se restablecen los ndices mediante la funcin array_values.
1
2
3
4
5
6
7
8
9
-
7/22/2019 Unidad 1 Web
72/150
10
11
12
13
14
15
16
17
18
19
20
21
22
print_r($array);
echo"
Nmero de elementos en el array: ".count($array)."
";// Ahora sumaremos un item (observe que el nuevo ndice es 7, y no 0).
$array[] = 60;
print_r($array);
echo"
Nmero de elementos en el array: ".count($array)."
";// Re-index:
$array= array_values($array);
$array[] = 57;
print_r($array);
echo"
Nmero de elementos en el array: ".count($array)."
";?>
Funcin Range
Crea un vector que contiene una secuencia de elementos. Sintaxis array range(mixed $inicial,mixed$final [, number $incremento])
Range () retorna vector de elementos desde inicial hasta final, ambosinclusive. Si inicial>final, la secuencia ser del mayor al menor.
Si recibe como parmetro incremento, ste ser usado como el incremento
entre elementos en la secuencia. Incrementoes un nmero positivo. Si no se especifica, incrementotendr
un valor predeterminado de 1.
-
7/22/2019 Unidad 1 Web
73/150
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Arrays asociativos
Un array est formado por conjuntos de parejas ndice =>valor, o como sueleexpresarse en ingls, key, valu. Los cuales se expresan comnmente con ndices
-
7/22/2019 Unidad 1 Web
74/150
o keys numricos (tambin conocidos como arrays escalares). Adems es posibleusar strings como ndices, es decir, cadenas de texto. Este tipo de array es elarray asociativo:
Ejemplo: Imprimiremos la fecha actual mediante el uso de arreglos.
En la lnea 4 se declara un arreglo asociativo que contiene los nombres delmes en espaol
En la lnea 11 se declara un arreglo asociativo que contiene los nombresdel da de la semana en espaol
En la lnea 18 se obtiene el nmero del da del mes
El ao se obtiene en la lnea 19.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-
7/22/2019 Unidad 1 Web
75/150
16
17
18
19
20
$dia= date('d');
$ao = date('Y');
return$semanaReturn.' '.$dia.' de '.$mesReturn.' de '.$ao;
}
echoimprimeFecha();
?>
Recorrer una tabla con ndices numricos mediante un bucle es sencillo, perocmo recorremos una tabla con ndices asociados? Para ello, utilizaremos una
serie de sentencias especficas para tal fin:
Each ()se usa normalmente de forma conjunta a list()para recorrer una matriz:por ejemplo:
-
7/22/2019 Unidad 1 Web
76/150
Matrices
Los arrays bidimensionales - matrices - similares a una tabla de doble entrada.Cada uno de los elementos se identifica unvocamente por un nombre ($nombre)seguido de dos ([]) que contienen los ndices del array.
Los ndices pueden ser de tipo escalar - equivalen al nmero de fila y columnaque la celda ocupa en la tabla o puede ser asociativos lo que equivaldra enalguna medida a usar como ndices los nombres de la fila y de la columna.
Los elementos de un arraybidimensionalescalar pueden escribirse usando unade estas sintaxis:
$arreglo [][] =valor. En este caso los ndices se autoincrementan iniciando
los ndices en cero. El primer ndice corresponde a renglones y el segundoa las columnas.
$arreglo[i][j] = valor. En este caso corresponde al programador el control delos ndices.
Ejemplo: Crear e imprimir una matriz r- renglones - x c- columnas -.
En las lneas 6 y 11 se controla el ndice rengln
En las lneas 7 y 12 se controla el ndice columna
mt_rand es una funcin PHP que genera nmeros aleatorios en este casoentre 1 y 100.
-
7/22/2019 Unidad 1 Web
77/150
for($j= 0; $j
HomeImprimir Matriz
Renglones
Columnas
-
7/22/2019 Unidad 1 Web
78/150
3.6. Funciones
Una funcin es el trmino para describir una secuencia de rdenes que hacen unatarea especfica de una aplicacin ms grande.
Una funcin de usuario en PHP no es ms que una porcin de cdigo quepodemos llamar en cualquier momento. De un lado, al dividir nuestro cdigo enfunciones podemos aislar y perfeccionar cada una de sus funcionalidades; de otrolado, podemos reutilizar este cdigo, ya que una funcin puede ser llamadacuantas veces la necesitemos.
Para definir una funcin debemos usar la palabra reservada function. Para llamarla funcin basta con invocar su nombre.
Las declaraciones de funciones generalmente son especificadas por:
Nombre de la funcin con el que se identifica y se distingue de otras. Nopodr haber otra funcin, ni procedimiento con ese nombre (salvosobrecarga o polimorfismo en programacin orientada a objetos).
Un tipo de dato de retorno. Tipo de dato del valor que la funcin devolveral terminar su ejecucin.
-
7/22/2019 Unidad 1 Web
79/150
Una lista de parmetros. Especificacin del conjunto de argumentos(pueden ser cero, uno o ms) que la funcin debe recibir para realizar sutarea.
El cdigo u rdenes de procesamiento. Conjunto de rdenes y sentencias
que debe ejecutar la funcin.
La sintaxis de una funcin es la siguiente:
1
2
3
function nombreFuncion(arg1, arg2,... argn) {
//cuerpo de la funcin
}
Ejemplo: Conventir grados centgrados a grados Fahrenheit.
En las lneas 2 al 4 se hace la declaracin de la funcin
La palabra reservada return regresa el valor de la funcin lnea 3.
En la lnea 11 se hace un llamado a la funcin cF pasandole comoparmetro una variable.
-
7/22/2019 Unidad 1 Web
80/150
Home
Grados centgrados a grados Fahrenheit
Centgrados
PHP no distingue entre maysculas y minsculas al nombrar las funciones, asique cF sera lo mismo que CF, aunque es buena prctica ser consistente en laforma de escribir los nombres. Como curiosidad, podrs observar que en los
-
7/22/2019 Unidad 1 Web
81/150
mensajes de error, PHP siempre designa tus funciones en minscula.
Los parntesis permiten pasar valores a las funciones (parmetros), son siemprenecesarios, aunque no pases valor alguno
Una funcin puede retornar ms de un valor, si lo regresamos como un arreglo y loasignamos mediante la funcin de PHP list.
Ejemplo: Convertir grados Centgrados (Celsius) a grados Fahrenheit, Kelvin yRankine.
La lnea 6 regresa un array de valores.
Mediante la funcin list se recuperan los valores del array en variables.
-
7/22/2019 Unidad 1 Web
82/150
echo"$formato $r grados Rankine
";echo"$formato $k grados Kelvin
";?>
HomeConversin de temperaturas
Grados
-
7/22/2019 Unidad 1 Web
83/150
Paso de parmetros por referencia
Hasta el momento usamos parmetros por valor. Si queremos pasar nuestrasvariables por referencia - de tal manera que los cambios en los argumentospersistan - es necesario anteponer al argumento o parmetro el smbolo "&".
Ejemplo: Considere el clculo del rea y volumen de una esfera en funcin de suradio mediante las siguientes formulas;
En la lnea 4 al 7 se declara una funcin con parmetros por referencia.Observe que los parmetros por referencia se denotan anteponiendo un &al $.
La lnea 5 usa la funcin predifinida pi() que no necesita explicacin
Observe que la funcin no regresa valores, pero aun as los variables reay volumen tomaron valor. Esto es porque fueron declaradas comoparmetros por referencia.
La funcin PHP number_format (Lneas 14 y 15) da formato a un parmetronumrico con separador de miles y decimales.
1
2
3
4
-
7/22/2019 Unidad 1 Web
84/150
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
functioncalculo( $radio, &$area, &$volumen){
$area= 4 * pi() * $radio* $radio;
$volumen= $area* $radio/3;
}
$formato= "
";
$area= 0;
$volumen= 0;
calculo($radio, $area, $volumen);
echo"$formato Sea una esfera cuyo radio es $radio metros
";echo"$formato tiene un rea de ".number_format($area,2,'.',',')."metros2
";echo"$formato tiene un volumen de ".number_format($volumen,2,'.',',')."metros3
";?>
rea y volumen de una esfera
-
7/22/2019 Unidad 1 Web
85/150
29
30
31
32
33
34
35
36
37
38
39
Radio
Funciones recursiva
Se denominan funciones recursivas a aquellas que se llaman a s mismas.
Ejemplo: Para todo nmero natural n, se llama n factorial o factorial de n alproducto de todos los naturales desde 1 hasta n. Es decir:
Se define 0! = 1, para que la relacin n! = n (n - 1)! sea tambin vlida para n =1. Esta relacin permite definir los factoriales por recursividad. La notacin n! fuepopularizada por el matemtico francs Christian Kramp.
-
7/22/2019 Unidad 1 Web
86/150
-
7/22/2019 Unidad 1 Web
87/150
Clculo del factorial de n
n
Ejemplo de aplicacin: Suma, resta, multiplicacin y divisin de quebrados
Suma o Resta, Divisin, Reducir, Fracciones
functionsumaResta($n1, $d1, $n2, $d2, $signo) {
$dr = mcm($d1, $d2);
$nr = ($n1 * ($dr / $d1) + $signo * $n2 * ($dr / $d2));
$cadena = $n1.'/'.$d1.' ';
$cadena .= ($signo ==1?'+':'-').' '.$n2.'/'.$d2;
if($nr ==0) {
$mensaje = $cadena.' = 0';
-
7/22/2019 Unidad 1 Web
88/150
}else{
if( $nr ==$dr) {
$mensaje = $cadena.' = 1';
}else{
$mensaje = reducir($nr, $dr, $cadena);
}
}
return$mensaje;
}
3.7. Ejemplos PHP
Redireccionamiento de los visitantes a las pginas especficas en su idioma.
Conocer los idiomas seleccionados en el navegador de nuestros visitantes puedeser un dato muy importante que puede utilizar para redirigir al usuario a unapgina especfica en el idioma correspondiente, o bien para mostrar informacin
especfica dirigida al usuario (como por ejemplo el anuncio ms adecuado)
Si deseamos que nuestro sitio sea bilinge en ingls y espaol, bajo el supuestoque el espaol y el ingls son los dos idiomas ms utilizado por nuestros visitantes(nuestro idioma por defecto ser espaol).
1
2
3
4
5
-
7/22/2019 Unidad 1 Web
89/150
6
7
}
?>
Imprimir fecha y hora del sistema
1
2
3
4
5
6
7
La fecha del da de hoy es:
La hora local del servidor es:
Procesando Formularios
Para conocer mediante que mtodo recibimos el formulario en PHP usamos lavariable de servidor $_SERVER['REQUEST_METHOD']. El siguiente cdigomuestra su uso.
?1
2
3
4
5
6
-
7/22/2019 Unidad 1 Web
90/150
7 ?>
Eliminar espacios
La funcim trimelimina los espacios en blanco de la cadena. Observe queest funcin solo elimina los espacios en blanco de los extremos izquierdo yderecho de la cadena, ignorando los espacios en blanco internos (Lnea10).
La funcin strlower convierte la cadena en minsculas (Lnea 3).
ereg_replacebusca cualquier ocurrencia del patrn en la cadena y lareemplaza por otra. En nuestro caso, cambia todo espacio en blanco porvacio (Lnea 4).
1
2
3
4
5
6
7
8
9
10
11
12
-
7/22/2019 Unidad 1 Web
91/150
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
?>
HomeEliminar Espacios
Cadena
Clculo de reas y permetros
-
7/22/2019 Unidad 1 Web
92/150
El programa principal realiza una interfase bsica para manejar multiplesformularios en un mismo archi