Unidad 1 Web

download Unidad 1 Web

of 150

Transcript of Unidad 1 Web

  • 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
    Mujer

    Los 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."
    ";

    }

    ?>


    Regresar

    Par 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


    Home

    Ordenar 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


    Home

    Imprimir 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

    ";

    ?>


    Home

    Conversin 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

    ?>


    Home

    Eliminar 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