Anda di halaman 1dari 74

Creando Sitios de Comercio Electrnico

Creando Sitios de Comercio Electrnico

Edicin 1.0
Prohibida la reproduccin total o parcial Sin nuestro consentimiento Derechos de copia reservados www.LibrosDigitales.NET

Creando Sitios de Comercio Electrnico

Presentacin del Caso a Desarrollar


Objetivos
En este primer mdulo se desarrollaran los siguientes puntos: Presentacin del escenario de trabajo. El modelo de la base de datos. Tipos de archivo que compone el Proyecto. Sectorizando Hojas de Estilo Tecnologas disponibles ASP vs. PHP

Creando Sitios de Comercio Electrnico

Presentacin del escenario de trabajo


Peru Adventure & Trips

Antecedentes
Peru Adventure Trips, es una empresa dedicada a la venta de paquetes turisticos con cede en la capital. En la actualidad elabora y vende paquetes turisticos en sociedad con empresas amigas (socios de negocio) en las principales ciudades del Pais. Sus principales clientes son extranjeros y una minoria nacionales. Sus contactos en otras ciudades del mundo se encargan de promocionar sus paquetes turisticos. Las operaciones de reserva, informacin y contactos lo realizan de forma convencioinal usando un telefono. El dueo de la empresa, don Guino Castillo, conocer de las ventajas del uso de las tecnologias, decide cambiar a su Gerente General: Edgard Campos y decide contratar a Cesar Suarez, un joven profesional desarrollador de Sites de Comercio Electronico, quien a su vez sugiere contratar a una Profesional en Marketing y Diseo Grafico: Tamara Fernandez. El dueo le manifiesta, que por la recesion economica del Pais, el presupuesto destinado a la promocion de los paquetes turisticos, asi como la cuenta por el uso de telefono se debe reducir. Asi mismo le comenta que las comisiones obtenidas por los contactos con sus socios en el extranjero es muy reducido y que tiene intensiones de ser el mismo quien establezca contacto directo con los turistas. Tamara sugiere cambiar los distintivos de la empresa, plantea elaborar una pagina en Internet que refleje el espiritu de la empresa, usando el nombre de la empresa como dominio (www.PeruAdventure.com) y asignar cuentas de correo con dicho dominio a todos los empleados (Tamara@PeruAdventure.com, Cesar@PeruAdventure.com), adems para aplicar el Marketing directo y el realizar las campaas de Mailing, seala que se requiere una conexin permanente a Internet.

Creando Sitios de Comercio Electrnico

El presupuesto
Cesar, indica que puede iniciarse comprando el dominio PeruAdventure.com y creando el Sitio en Internet y publicando en ella una Pagina Estatica presencial, mientras se elabore la solucion final. La inversion para la solucion en la parte tecnologica, asciende: Acceso a Internet, 128 Kb de ancho de banda, las 24 horas del dia Compra de Dominio en GrapPeru.com, incluye mantenimiento Servicio en Hosting en GrapPeru.com, 60 Mb soporte para ASP y Access o SQL Server 25 cuentas de correo POP3 US$ 65 mes US$ 20 ao US$ 180 ao

La inversion por todo el ao asciente a 980 dolares, lo que equivale a la mitad de uno de los recibos de telefono que suele llegar a la empresa (llamadas internacionales). Cesar, propone que se debe crear una pagina que no solamente muestre una lista de paquetes turisticos, sino un lugar inteligente que permita discretamente almacenar el perfil de cada visitante y asi preparar paquetes turisticos personalizados. Por ejemplo a muchos les agrada realizar canotaje, parapente, es decir les agrada la aventura, otros prefieren algo mas conservador como visitar los diversos centros arqueologicos y actividades culturales como el arte, la musica y las danzas autoctonas. EN cambio otros buscan la parte mistica. Cesar dice que tratar a todos los visitantes de la misma forma no seria conveniente, debemos buscar tratar a cada visitante de una forma muy personalizada y tener para ellos paquetes que vayan de acuerdo a sus gustos y preferencias (el pilar del CRM) El Sitio a disear deber cumplir con las condiciones sealadas, la informacin de cada visitante deber guardarse en una Base de Datos, en este caso usaremos Access, la dinamicidad de la pagina la conseguiremos mediante ASP.

Creando Sitios de Comercio Electrnico

Descripcin general
Peru Adventure & Trips
El Sitio a desarrollar debe ser capaz de: Registrar a cada visitante Se debe almacenar como minimo su nombre, apellido, correo electronico y pais, puede consignarse informacion adicional como fecha de nacimiento, y algunos datos de su preferencia. Catalogo de Paquetes turisticos Deber mostrarse un catalogo general de paquetes turisticos organizado por categorias, por ejemplo Turismo de aventura, Turismo ecologico, Turismo mistico, etc. Posteriormente de acuerdo a las preferencias del visitante, la pagina podria priorizar un catalogo de acuerdo a su perfil. Registrar una solicitud de reserva Se deber crear un modulo de reserva, por un determinado tiempo, con posibilidad de reconfirmar o anular una reserva. Disponer de una pasarela de pago Se dispondr de una pasarela de pago, de manera que el visitante usando su tarjeta de credito pueda cancelar el importe del paquete turistico. Disponer de un modulo de administracion del sitio Para la empresa ser necesario contar con un modulo de administracion del Sitio web, por ejemplo para dar de alta a nuevos paquetes turisticos, para remover reservas, etc.

Creando Sitios de Comercio Electrnico

La Base de Datos
Descripcion de las tablas
Tabla: DESTINO La tabla contiene la relacion de ciudades Llave primaria: IdDestino El Id del destino es un numero correlativo. IDDESTINO CIUDAD Entero Carcter 4 20

Tabla: PAQUETE La tabla paquete contiene la descripcion de un paquete turistico, su costo, el inicio y termino, la cantidad de cupos. Llave primaria: IdPaquete El Id del paquete tiene un prefijo P seguido de un numero correlativo, por ejemplo: P0001, P0002. Llave fornea: IdDestino IDPAQUETE Carcter IDDESTINO Entero TIPO Carcter NOMBRE Carcter PRECIOCOSTO Monetario PRECIOVENTA Monetario FECHAINICIO DateTime FECHATERMINO DateTime CATEGORIA Carcter FECHACONFIRMACION DateTime CUPOS Entero VIGENTE Entero 5 4 1 100 8 8 8 8 1 8 4 4

4 4

Tabla: ACTIVIDAD Contiene las actividades que compone un paquete turistico: recojo del aeropuerto, hospedaje, visitas guiadas, etc., para cada actividad habr un proveedor. Llave primaria: IdActividad El Id de la actividad es un numero correlativo Llaves fornea: IdProveedor, IdPaquete IDACTIVIDAD IDPROVEEDOR IDPAQUETE NOMBRE PRECIOCOSTO FECHA Entero Entero Carcter Carcter Monetario DateTime 4 4 5 100 8 8

Creando Sitios de Comercio Electrnico Tabla: PROVEEDOR Contiene la relacion de proveedores Llave primaria: IdProveedor El Id del proveedor es un numero correlativo IDPROVEEDOR NOMBRE CIUDAD TIPO EMAIL URL Entero Carcter Carcter Carcter Carcter Carcter 4 50 20 2 40 80

Tabla: CLIENTE Contiene la lista de clientes suscritos Llave primaria: IdCliente El Id del cliente consta de un prefijo C y un numero correlativo, por ejemplo: C0001, C0002 IDCLIENTE APELLIDO NOMBRE EMAIL CLAVE FECHANAC SEXO PAIS CIUDAD TIPOS Carcter Carcter Carcter Carcter Carcter DateTime Carcter Carcter Carcter Carcter 5 40 40 40 20 8 1 20 20 10

Tabla: RESERVA Contiene la reserva de paquete efectuado por un determinado cliente Llave primaria: IdReserva El Id de la reserva consta de un prefijo R y un numero correlativo, por ejemplo: R0001, R0002 IDRESERVA IDCLIENTE IDPAQUETE FECHA CANTIDAD TIPOPAGO TOTALVENTA DESCUENTO TOTALNETO CONFIRMADO ANULADO Carcter Carcter Carcter DateTime Entero Carcter Monetario Monetario Monetario Lgico Lgico 5 5 5 8 4 1 8 8 8 1 1

4 4 4

Creando Sitios de Comercio Electrnico Tabla: PARAMETRO Contiene el ultimo numero correlativo usado en los Ids de las tablas. El Campo CAMPO, contiene el nombre del campo y VALOR el ultimo numero usado CAMPO VALOR Carcter Carcter 20 20

J La BD en Access se adjunta al libro, en la siguiente edicin se ampliar el tema de Base de Datos.


La aplicacin PeruAdventure, lo hallar en: www.LibrosDigitales.NET/PeruAdventure

Creando Sitios de Comercio Electrnico

Tipos de archivos que compone un proyecto


Una aplicacin web est compuesta por distintos tipos de archivos, los que pueden ser: .htm o .html .asp Paginas HTML, pueden contener formularios y controles, texto estatico, referencias a graficos e hipervinculos Archivo de tipo Active Server Page, contiene instrucciones HTML dentro de los cuales se encuentran instrucciones VBScript que se ejecutan en el servidor, los que interactuan con una Base de Datos Hojas de Estilo, contienen informacion sobre como optimizar los elementos de una pagina Graficos que se mostrarn en la pagina Cada proyecto puede contener un archivo Global.asa, este archivo contiene la definicion de variables globales, conecciones a bases de datos, asi como el codigo de inicializacion y cierre

.css .gif, .jpg Global.asa

J Por comodidad, podemos crear carpetas para separar los distintos archivos de la aplicacin

10

Creando Sitios de Comercio Electrnico

Sectorizacin
Antes de iniciar el proyecto, conviene definir los sectores que presentar nuestros Sitio. La pantalla la podemos dividir en:

Encabezado: En ella podemos situar el logotipo de la empresa, el nombre del site, una banda de menu Pie: En ella podemos situar los datos de la empresa, los derechos, y quizas algunos banners Izquierda: En ese sector podemos situar un menu de opciones, hipervinculos, y minibanners Derecha: Para mostrar informacion adicional o publicidad, mediante minibanners En nuestro caso ser:

J Sugerimos no usar Marcos (Frames), en su lugar usaremos Tablas

11

Creando Sitios de Comercio Electrnico

Definiendo Hojas de Estilo


Durante el desarrollo aun no estableceremos atributos de fuente o color, lo dejaremos para el final, esto puede solucionarse facilmente, mediante el uso de hojas de estilo, asi podemos definir: Colores.css

H1 {font: 17pt Arial; Font-weight: bold; Color: Blue} H2 {font: 13pt Arial; Font-weight: bold; Color: Green} P {font: 17pt Arial; Color: Yellow}

Asi el archivo Colores.HTM, ser:

<HEAD> <TITLE>Aqu no hay Hojas de Estilo</TITLE> </HEAD> <BODY> <H1>Este es un ejemplo</H1> <H2>del uso de hojas de estilo</H2> <P>Personaliza cada uno de los elementos que forma parte una pagina</P> </BODY>

12

Creando Sitios de Comercio Electrnico Una vez creada la hoja de estilo, agregue a la pagina el link en la seccion <HEAD>:

<LINK Rel=stylesheet TYPE=text/css HREF= colores.css>


La pagina debe quedar asi:

<HEAD> <TITLE>Aqu si se usa Hojas de Estilo</TITLE> <LINK Rel="stylesheet" TYPE="text/css" HREF= "colores.css"> </HEAD> <BODY> <H1>Este es un ejemplo</H1> <H2>del uso de hojas de estilo</H2> <P>Personaliza cada uno de los elementos que forma parte una pagina</P> </BODY>
Al colocar la referencia a la hoja de estilo y volver a ejecutar la pagina queda:

J En el presente libro no nos preocuparemos mucho por el aspecto de nuestra pgina, sino mas bien
incidiremos en la parte funcional, para la parte artistica dentro de muy poco estar disponible el libro para el WebMaster profesional

13

Creando Sitios de Comercio Electrnico

Tecnologias para el diseo de Pginas


Las paginas en Internet las podemos dividir en grupos:

Tecnologas del lado del cliente: Paginas estticas


Corresponde a las instrucciones que se ejecutarn en el Navegador, el codigo HTML, scripts basadas en JavaScript o VBScript. Representan la primera generacion de paginas en el web, por lo general de tipo presencial, a manera de un anuncio en un periodico. Caracteristicas: Estan basadas en HTML, JavaScript, VBScript, CSS. Son sencillas de crear, las podemos hacer incluso desde MS-Word, simplemente grabando el documento como HTML. Para su construccion, como minimo necesitamos un editor de texto, claro que existen productos que nos permiten disear paginas muy vistosas y nos ahorran tiempo en diseo, tales como MS-FrontPage, Flash y DreamWeaver de Macromedia. A pesar de utilizar tales programas es necesario tener conocimiento de las instrucciones HTML y de JavaScript, para optimizar el codigo generado (en muchos casos se inserta codigo innecesario que debe removerse a fin de obtener un archivo ligero) Estas paginas no realizan gestion con Base de Datos.

Ejemplos: Basado en solo HTML:

<HEAD> <TITLE>Ejecutando HTML en el Cliente</TITLE> </HEAD> <BODY> <H2>Usando HTML</H2> <P>El dia de hoy es 18/02/2002 </BODY>

14

Creando Sitios de Comercio Electrnico

Usando JavaScript:

<HEAD> <TITLE>Ejecutando un script JavaScript en el Cliente</TITLE> </HEAD> <BODY> <H2>Usando JavaScript</H2> <P>El dia de hoy es <SCRIPT LANGUAGE=JavaScript RUNAT=Client> <!-dHoy = new Date(); document.write (dHoy); //--> </SCRIPT> </BODY>

15

Creando Sitios de Comercio Electrnico

Usando VBScript:

<HEAD> <TITLE> Ejecutando un script VBScript en el Cliente </TITLE> </HEAD> <BODY> <H2>Usando VBScript</H2> <P>El dia de hoy es <SCRIPT LANGUAGE=VBScript RUNAT=Client> <!-Document.Write (Date) --> </SCRIPT> </BODY>

16

Creando Sitios de Comercio Electrnico

17

Creando Sitios de Comercio Electrnico

Tecnologias del lado del Servidor: Pginas dinmicas


Son paginas mas inteligentes, actualmente la mayoria de sites son de este tipo. El codigo, se almacena en un Servidor Internet. Cuando se accede desde un navegador, el Servidor interpreta el cdigo, lo ejecuta, y enva al navegador el resultado en formato HTML. Esto hace un navegador independiente a la solucin. Caracteristicas: Estan basadas en ASP o en PHP Para su construccion solo se requiere un sencillo editor de texto, aunque existen productos que alivian dicho trabajo como MS-Visual InterDev para ASP o EditPlus (www.editplus.com) un pequeo pero gran editor de codigo ASP. Permite la creacion de paginas con contenido dinamico, por ejemplo podemos crear sites que permitan realizar reservas de hoteles, controlar ventas en linea, etc. Estas paginas hacen uso de una Base de Datos.

Basado en ASP:

<HEAD> <TITLE> Ejecutando un script VBScript en el Servidor </TITLE> </HEAD> <BODY> <H2>Usando VBScript </H2> <P> El dia de hoy es: <%Response.Write Date%> </BODY>

18

Creando Sitios de Comercio Electrnico

Que debo usar ASP o PHP?


Para empezar ambos son gratuitos, es decir no necesita comprar licencia de uso a ninguna empresa, claro Microsoft es quien a explorado mas y muchos de sus productos estan basados en ASP, mientras que es la corriente Linux quien apuesta por PHP. Como entornos de trabajo, ambos son muy buenos y tienen mucho en comun. Lo que los difieren es el sistema operativo sobre el que operan, Windows para ASP y Linux para PHP. EN cuanto a la gestion de Base de Datos, para el sistema operativo Windows, podemos usar Access, SQL Server, Visual FoxPro, Oracle, que son gestores de bases de uso comercial muy conocidos. En cambio por el lado de Linux podemos usar MySQL, SQLPostgree que a diferencia de los productos Microsoft, son Bases de Datos gratuitas. Hay que sealar que MySQL y SQLPostgree presentan ciertas limitaciones para quienes estamos acostumbrados a las cosas faciles, por ejemplo no permiten Procedimientos Almacenados ni Desencadentes , no siempre ser asi, la corriente Linux avanza rapidamente, quiza mas adelante contemos con un gestor de Base de Datos mas potente, sin embargo hay que sealar que muchas soluciones profesionales estan basadas en el uso de esta tecnologia, por tanto su construccion ya es, ingenio del desarrollador.

19

Creando Sitios de Comercio Electrnico

Conceptos generales de ASP


Objetivos
En este segundo mdulo se desarrollaran los siguientes puntos: ASP Que necesito para ejecutar ASP El modelo de objetos

20

Creando Sitios de Comercio Electrnico

Active Server Pages


Active Server Pages (ASP) es el aporte de Microsoft, al desarrollo de pginas dinmicas. CGI y Perl, son tecnologias predecesoras a ASP. Otras tecnologas que compiten con ASP son ColdFusion (Allaire), JavaServer Pages (Sun Microsystems) y PHP (de libre distribucin bajo Open System). ASP no es un lenguaje de programacin, sino un marco de trabajo, donde se puede construir la aplicacin web. Con ASP podemos construir aplicaciones que accedan a Base de Datos como Access, SQL Server u Oracle.

Ventajas
Las principales ventajas que ofrece ASP son: Permite acceder a bases de datos de una forma sencilla y rpida. Las pginas se generan dinmicamente. El cdigo de script se ejecuta en el servidor, y no depende del navegador que se use. Desde una pgina ASP se pueden ejecutar servidores OLE en el servidor de web y filtros ISAPI: acceso a base de datos, acceso a ficheros, log en el sistema, envo de correo, etc. La tecnologa ASP se emplea principalmente para crear aplicaciones interactivas

Cmo funciona?
Las pginas ASP comienzan a ejecutarse cuando un usuario solicita un archivo .asp al servidor Web a travs del explorador. El servidor web llama a ASP, que lee el archivo solicitado, ejecuta las secuencias de comandos que encuentre y enva los resultados al explorador del cliente. Puesto que las secuencias de comandos se ejecutan en el servidor, y NO en el cliente, es el servidor el que hace todo el trabajo necesario para generar las paginas que se envan al explorador. Las secuencias de comandos quedan ocultas a los usuarios, estos solo reciben el resultado de la ejecucin en formato HTML. Desaparece por tanto el problema de si el cliente puede o no ejecutar sentencias de comandos, el servidor Web solo enva el resultado en cdigo HTML standard el cual puede ser interpretado por cualquier explorador.

21

Creando Sitios de Comercio Electrnico

Como se usa ASP?


Existen dos formas de incluir scripts en una pgina web: 1. Escribindolo entre las etiquetas <SCRIPT> y </SCRIPT>. En el atributo LANGUAGE podemos indicar en que lenguaje se est programando. Para distinguir el cdigo de script que se ejecuta en el servidor del que se ejecuta en el cliente, se emplea el atributo RUNAT=Server:

<SCRIPT LANGUAGE=VBScript RUNAT=Server> instrucciones </SCRIPT>

2. Escribindolo entre los delimitadores <% y %>.

<% instrucciones %>

Ejemplo:

<HEAD> <TITLE> Ejecutando un script VBScript en el Servidor </TITLE> </HEAD> <BODY> <H2>Usando VBScript </H2> <P> El dia de hoy es: <SCRIPT LANGUAGE=VBScript RUNAT=Server> Response.Write Date </SCRIPT> </BODY>
Una forma mas practica es encerrar el codigo VBScript dentro <% y%>.

<HEAD> <TITLE> Ejecutando un script VBScript en el Servidor </TITLE> </HEAD> <BODY> <H2>Usando VBScript </H2> <P> El dia de hoy es: <%Response.Write Date%> </BODY>

22

Creando Sitios de Comercio Electrnico

Que necesito para ejecutar un programas en ASP?


Para el desarrollo de nuestras paginas podemos usar el PWS de Windows 95/98, para la publicacion debemos usar el IIS en un Servidor Windows NT o 2000. Veamos ambas opciones en detalle:

Personal Web Server (PWS)


Instalacion Windows 95: Primero debe actualizar Windows. Esta actualizacion est con el Service Pack 1. Esta actualizacion se llama Windows Socket 2 (WinSock2), el cual, puede bajar el WinSock2 de: http://www.microsoft.com/windows/downloads/bin/w95ws2setup.exe Esta actualizacion corrige los problemas con el protocolo TCP/IP de Windows 95. Luego se podr instalar el PWS correctamente. Windows 98: el PWS lo encontrar en el CD de instalacion de Windows 98 en la carpeta PWS que se encuentra dentro de la carpeta Add-Ons, de no hallarse puede obtener una copia de forma gratuita del sitio de descarga de www.Microsoft.com.

Ejecucin: 1. Una vez instalado, ejecute el PWS desde: Botn Inicio Programas Microsoft Personal Web Server Administrador personal de Web Le mostrar el panel Principal, donde se muestra el nombre de la pagina principal, en el ejemplo: http://Grap Asi mismo indica el nombre del directorio local, que en este caso es c:/InetPub/wwwroot Si en esta carpeta situa los archivos de su proyecto, entonces bastar que en el navegador anote:

http://Grap
y se iniciar (el archivo que de inicio al proyecto debe llamarse Default.asp o Default.htm)

23

Creando Sitios de Comercio Electrnico

2. Para registrar una carpeta distinta, vaya a a la opcion Avanzada

24

Creando Sitios de Comercio Electrnico 3. Luego haga click en Agregar. El dialogo Agregar directorio, asocie el directorio donde se encuentra su proyecto con un alias, en el ejemplo Capitulo3.

4. Para ejecutar el proyecto deber anotar:

http://Grap/Capitulo3
Siempre que el proyecto empiece con Default.asp o Default.htm, en su caso debera anotar:

http://Grap/Capitulo3/ejemplo.asp

25

Creando Sitios de Comercio Electrnico

Internet Information Server (IIS)


Presente en las versiones 3.0/4.0/5.0 para Windows NT 4.0 o Windows 2000 IIS es el entorno de desarrollo y ejecucin de las pginas ASP para servidores web de Microsoft. En Windows NT, IIS significaba Internet Information Server, en Windows 2000, IIS opera como un servicio, recibiendo el nombre de Internet Information Services. La ultima version de Internet Information Server fue 4.0, la reciente version 5.0 aparece como parte de la plataforma Windows 2000, la version 4.0 se sigue utilizando debido a su gran estabilidad y tiempo que se lleva funcionando y es utilizada en servidores NT.

La ultima version de IIS 5.0 aparece formando parte de la nueva version de sistema operativo de Microsoft, Windows 2000, se encuentra completamente integrado con el sistema operativo y supone una mejora de IIS 4.0, no presenta un salto radical como de la version 3.0 a la 4.0.

J En conclusion:
Si vamos a rentar un servicio de hosting ser suficiente con Windows 98 (por razones de costo de licencia). Concluida la labor de desarrollo, podemos colocar la aplicacin en el espacio rentado en el servicio de hosting, via FTP o mediante la consola que el servicio de hosting nos provea. Si vamos a implementar un Servidor Web en nuestra oficina, conviene adquirir una licencia de Windows 2000 Advanced Server. A efectos de crear los programas ASP, ser suficiente un simple editor de textos como el Bloc de notas de Windows, o adquirir un Editor mas practico como el EditPlus (www.editplus.com), por unos 30 dolares.

26

Creando Sitios de Comercio Electrnico

Ahora si se puede adquiera MS-Visual InterDev (no crea que lo har todo, de todos modos hay que echarle mano al codigo). Si se quiere acceder a una base de datos, se puede usar una conexin ODBC, una conexin OLE-DB, o una ruta fsica. Como plataforma de bases de datos, una simple base de datos hecha en Microsoft Access puede ser suficiente. Hay diversos recursos en el web que son gratuitos y nos ayudarn a crear soluciones muy profesionales, a lo largo del texto se ir indicando.

27

Creando Sitios de Comercio Electrnico

Modelo de Objetos en ASP


ASP consta de seis objetos, entre estos no existe una relacion jerarquica, sino una relacion logica, a continuacion se hace una descripcion general de cada una de ellas:

El Objeto Response
Este objeto se usar para enviar informacin a mostrar en el navegador o para redireccionar a un URL diferente. Ejemplo:

Response.Write "Hola a todos


Esto imprimir en el navegador "Hola a todos". Tambin puede incluirse instrucciones HTML como para indicar el salto de linea.

<HEAD> <TITLE> Un saludo </TITLE> </HEAD> <BODY> <H2>Hola a todos</H2> <% Response.Write ("Esta cadena <BR> ha sido generada en el <B>Servidor. </B>") %> </BODY>

28

Creando Sitios de Comercio Electrnico

El Objeto Request
El Objeto Request se usar para obtener la informacin incluida en un formulario HTML o a partir de los datos enviados mediante la instruccin QueryString. Un ejemplo del uso del Objeto Request es recuperar un valor de un formulario html. El nombre de la variable viene del dispositivo de entrada de html.

<HEAD> <TITLE>Formulario entrada de datos </TITLE> </HEAD> <BODY> <FORM ACTION="VerDatos.asp" METHOD="POST"> <INPUT TYPE=Text NAME=txtNombre> <INPUT TYPE=Text NAME=txtDireccion> <INPUT TYPE="Submit" VALUE="Ver"> <INPUT TYPE="Reset" VALUE="Borrar"> </FORM> </BODY>
Ahora haremos que el valor de "txtNombre" sea asignado a una variable:

VerDatos.asp

<HEAD> <TITLE> Visualizando resultados </TITLE> </HEAD> <BODY> <% strNom strDir

= Request.Form ("txtNombre") = Request.Form ("txtDireccion")

Response.Write ("Nombres: " & strNom & <BR> ) Response.Write ("Direccion: " & strDir ) %> </BODY>

J Ahora podemos usar la variable, por ejemplo para almacenar el contenido en una Base de Datos,
realizar alguna calculo, imprimirla como parte de un mensaje, etc.

29

Creando Sitios de Comercio Electrnico

El Objeto Application
El Objeto Application se usa para guardar la informacin que deba ser compartido simultneamente por todos los usuarios de la aplicacin. Un ejemplo de esto podria la cadena de conexin a una Base de Datos, el nombre de los directorios comunes, etc.

Application("Impuesto") = 0.18

El Objeto Session
El Objeto Session se usa para conservar datos durante una sesion. Puede almacenarse en un Objeto Session, el Id del usuario, y asi poder verificar sus datos y filtrar la informacion.

Session("autorizado") = "s"
Cuando el usuario acceda a una pagina interior, para verificar si tiene permiso, solo tendriamos que acceder y verificar que el valor de la variable de sesion autorizado sea si.

J Hay un Objeto Application para todos los usuarios, y un Objeto Session para cada usuario
El Objeto Server
El Objeto Server se usa para definir la cantidad mxima de tiempo que se esperar para realizar una escritura, crear instancias a componentes COM y poder usarlas en nuestras paginas ASP, etc. Por ejemplo podemos usar este objeto para crear una instancia del objeto de ADODB.Connection y establecer una conexin a una Base de Datos.

Cn = Server.CreateObject ("ADODB.Connection")
En el cdigo anterior se define "Cn" como una instancia del objeto de ADODB.Connection. Luego se invocaria al mtodo Open de este objeto, para pasarle los parmetros apropiados (el nombre de fuente de datos, id del usuario, la contrasea, etc) y establecer una conexin a una Base de Datos.

30

Creando Sitios de Comercio Electrnico

Variables de Memoria
Objetivos
En este mdulo se desarrollaran los siguientes puntos: Que es una variable de memoria? Subtipos Cmo verificar los subtipos Funciones de conversin

31

Creando Sitios de Comercio Electrnico

Variables
En ASP (VBScript) hay slo un tipo de variable: Variant. Todas las variables son del tipo Variant. Cada variable puede tener un subtipo diferente. Hay 10 subtipos diferentes del tipo Variant (que se describe mas adelante).

Cmo declarar las variables:


Dim miVar
Cuando se declara una variable no es necesario especificar el subtipo. Se puede convertir una variable a un subtipo especifico.

Nombrando variables
Al dar un nombre a una variable debe tener en cuenta: Debe empezar con un caracter alfabtico No debe usarse nombres de comandos Debe ser nico dentro del mismo alcance La longitud del nombre debe ser menor a 255 carcteres o menos

Sugerencias para nombrar variables: Una convencion es usar un prefijo de 3 letras que indiquen el tipo de datos, como strNombre para las cadenas, intEdad para los enteros, etc. Puede usted definir un estilo propio usando prefijos que le guste y le sea practico. La idea de usar prefijos es facilitar la lectura de sus programas.

Usando variables
Simplemente asigne valores a las variables:

Num1 = 3.4142 Num2 = FormatNumber(Num1, 2) strFrase = "Bienvenido..." strNombre = Cesar strSaludo = strFrase + strNombre

K Una variable tiene por alcance el modulo donde fue definido. Es decir si define una variable en una
funcin, slo en esa funcin se podr usar dicha variable. Para que la variable est disponible a nivel de toda la pgina, debe definirla al principio y fuera de cualquier funcin o subprogramas.

32

Creando Sitios de Comercio Electrnico

Cuando se asigna un valor numerico a una variable y usted no le ha asignado un subtipo especifico, sera considerada como cadena al intentar sumar. As al realizar 2+2 y querer obtener 4, se conseguira 22 (cancatenacin), salvo sea una operacin de multiplicacin o divisin, donde automticamente el valor ser convertido a nmero. Suma.asp

<HEAD> <TITLE>Intentando sumar numeros </TITLE> </HEAD> <BODY> <FORM ACTION="Neto.asp" METHOD="POST"> <INPUT TYPE=Text NAME=txtSueldo> <BR> <INPUT TYPE=Text NAME=txtBoni> <BR> <INPUT TYPE="Submit" VALUE="Calcular Neto"> </FORM> </BODY>

Neto.asp

<HEAD> <TITLE>Deberia sumar, pero concatena </TITLE> </HEAD> <BODY> <% strSueldo = Request.Form ("txtSueldo") strBoni = Request.Form ("txtBoni") Response.Write ("Neto: " & strSueldo+strBoni ) %> </BODY>
Al ejecutar obtenemos:

33

Creando Sitios de Comercio Electrnico

34

Creando Sitios de Comercio Electrnico Veamos otro ejemplo, donde se calcula impuestos:

<HEAD> <TITLE>Declarando Variables</TITLE> </HEAD> <BODY> <% Dim intMonto, intIGV, intTotal intMonto = 900 intIGV = 18 intTotal = intMonto - ((intMonto/100)*intIGV) %> <P>Monto inicial <% = intMonto %> soles</P> <B><P>El total es <% = intTotal %> soles</B></P> </BODY>

35

Creando Sitios de Comercio Electrnico

Option Explicit
Las variables en ASP no necesitan ser declaradas, sin embargo es un buen hbito declarar las variables que usemos, una forma de forzar su definicin es mediante la orden Option Explicit, la cual debe insertarse al principio del cdigo ASP de cada pagina.

<%Option Explicit Dim a,b,c .. %>

Documentando
Es bueno documentar las secciones de codigo con cierta complejidad, nos sera de ayuda a nosotros (en el futuro), como a los otros desarrolladores del equipo de trabajo. Para ubicar un comentario use En VBScript: el apstrofe, ( ' ) En JavaScript: la doble ( // ) En HTML: <!-- comentario --> Se puede comentar en cualquier lado. Arriba de la linea o al final.

<HEAD> <TITLE>Declarando Variables</TITLE> </HEAD> <BODY> <% Dim intMonto, intIGV, intTotal Declaramos variables intMonto = 900 Monto en soles intIGV = 18 Impuesto intTotal = intMonto - ((intMonto/100)*intIGV) %> <!Imprimimos los resultados <P>Monto inicial <% = intMonto %> soles</P> <B><P>El total es <% = intTotal %> soles</B></P> </BODY>

36

Creando Sitios de Comercio Electrnico

La funcion TypeName
Esta funcion devuelve el tipo de dato, de una variable o expresion.

<HEAD> <TITLE>Usando TypeName</TITLE> </HEAD> <BODY> <%Dim dblPi, TipoPi, datFNac, TipoFNac, strFrase, TipoFrase dblPi = 3.142 TipoPi = TypeName(dblPi) datFNac = #11/08/02# TipoFNac = TypeName(datFNac) strFrase = "Esta es una frase" TipoFrase = TypeName(strfrase) Dim emp emptyVar = TypeName(emp) %> <P>dblPi devuelve <%= TipoPi %></P> <P>datToday devuelve <%= TipoFNac %></P> <P>strText devuelve <%= TipoFrase %></P> <P>emp devuelve <%= emptyVar %></P> </BODY>
Al ejecutar obtenemos:

37

Creando Sitios de Comercio Electrnico

Los Subtipos
Veamos un resumen de los subtipos disponibles: Subtipo Byte Integer Long Single Double Rango 0-255 -32,768 a 32,767 -2,147,483,648 a 2,147,483,647 -3.402823E38 a-1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos -1.79769313486232E308 a -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos Currency Date String Boolean Objeto -922,337,203,685,477.5808 a 922,337,203,685,477.5807 1 de enero de 100 al 31 de diciembre de 9999 De 0 a 2 mil millones caracteres True o False Cualquier referencia del Objeto

Los subtipos mas usados son String, Integer, y Boolean.

38

Creando Sitios de Comercio Electrnico

Funciones de conversin
Las siguientes funciones se acostumbrar usar para convertir las variables a un subtipo especfico: Funcion Cbool Cbyte Ccur Cdate CDbl Cint CSng CStr Convierte un dato al tipo: Boolean Byte Currency Date Double Int Sigle String

Todas estas funciones toman como parmetro una variable, y devuelven el subtipo pedido que puede luego ser retenida en la misma variable, por ejemplo:

var1 = CStr(var1)

39

Creando Sitios de Comercio Electrnico

<HEAD> <TITLE>Definiendo SubTipos</TITLE> </HEAD> <BODY> <% Dim strPi, dblPi, intPi, strPi2 Dim TipoPi1, TipoPi2, TipoPi3, TipoPi4 strPi = "3.142" TipoPi1 = TypeName(strPi) dblPi = CDbl(strPi) TipoPi2 = TypeName(dblPi) intPi = CInt(dblPi) TipoPi3 = TypeName(intPi) strPi2 = CStr(intPi) TipoPi4 = TypeName(strPi2) %> <P>Pi <P>Pi <P>Pi <P>Pi </BODY> es es es es <%= <%= <%= <%= TipoPi1 TipoPi2 TipoPi3 TipoPi4 %> %> %> %> y y y y Pi Pi Pi Pi retorna retorna retorna retorna <%= <%= <%= <%= strPi %> </P> dblPi %> </P> intPi %> </P> strPi2 %> </P>

40

Creando Sitios de Comercio Electrnico

Verificando los Subtipos


Hay seis funciones diferentes que ayudarn a determinar si una variable corresponde a un Subtipo especfico. IsArray(var) IsDate(var) IsEmpty(var) IsNull(var) IsNumeric(var) IsObject(var) Estas funciones retornan un valor lgico (verdadero o falso). Veamos el uso de cada uno de ellos:

IsEmpty(var)
Esta funcin indica si una variable est vaca. Una variable est vaca cuando la variable se ha creado, pero no se ha asignado an un valor. Esto es distinto a una cadena vaca ("") o a un valor NULO.

IsNull(var)
Esta funcion determina si el contenido de una variable contiene un valor numol. Una variable es nula cuando se iguala a un valor nulo.

IsNumeric(var)
Devolver verdadero si la variable contiene un valor numerico. Ejemplo:

<HEAD> <TITLE>Averiguando si es un numero</TITLE> </HEAD> <BODY> <% miVar = "Hola" If IsNumeric(miVar) Then Response.Write ("la Variable es numrica".) Else Response.Write ("la Variable no es numrica".) End If %> </BODY>

41

Creando Sitios de Comercio Electrnico

La funcin VarType()
Otra manera de determinar el Subtipo es usando la funcion VarType () La sintaxis:

VarType(var)
La funcin anterior devolver un nmero que representa los distintos subtipos. Subtipo vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString VbObject VbError VbBoolean vbVariant vbDataObject vbDecimal vbByte vbArray Valor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 8192 Descripcion no asignaron un valor Contiene valor nulo Entero Largo Single Double Currency Date String Object Error Boolean Variant Acceso de los Datos Decimal Byte Arreglo

42

Creando Sitios de Comercio Electrnico

Analizando las cadenas


Hay 7 funciones disponibles en ASP que le ayudara a analizar las cadenas:

InStr(CadenaDondeBuscar, CadenaABuscar)
La funcion retorna: 0 si la CadenaDondeBuscar es de longitud cero 0 si la CadenaABuscar no se encuentra en la CadenaDondeBuscar Nulo, Si la CadenaABuscar y la CadenaDondeBuscar es nulo. Ejemplo:

str1 = "Hola" str2 = "ol" If InStr(str1,str2)> 0 Then Response.Write ("str1 contiene a str2") Else Response.Write ("str2 no est contenido en str1") End If
Se imprimir:

str1 contiene a str2"

Left(Cadena,num)
Extrae caracteres por la izquierda

strProd = "Active Server Page" Response.Write ("Los primeros seis carcteres son" & Left(strProd,6))
Se mostrar:

Los primeros seis carcteres son Active

43

Creando Sitios de Comercio Electrnico

Right(Cadena,num)
Extrae caracteres por la derecha

strProd = "Active Server Page" Response.Write("Las 4 ltimas letras son"&Right(strProd,4))


Se mostrar:

Las 4 ltimas letras son Page

Mid(Cadena, NumInicio[, NumCantidad])


Extrae cierta cantidad de caracteres (NumCantidad) de una cadena, a partir de la posicion NumInicio. Si se omite NumCantidad, extrae los caracteres desde la posicion NumInicio hasta el final de la cadena Ejemplo:

strProd = "Active Server Page" Response.Write ( Mid(strProd, 1, 1) & Mid(strProd, 8, 1) & Mid(strProd,15,1))
El resultado:

ASP

Replace(Cadena, BuscarEsto, ReemplazaCon [, Inicio])


Reemplaza los caracteres (ReemplazaCon) buscados (BuscarEsto), dentro de una cadena desde la posicion indicada en Inicio. Si omite Inicio, la busqueda comienza desde el carcter inicial Ejemplo:

str1 = "Cesar-Augusto-Bustamante-Gutierrez" Response.Write ("con espacios :" & Replace(str1," -",""))


Se imprimir:

44

Creando Sitios de Comercio Electrnico

Con espacios: Cesar Augusto Bustamante Gutierrez

Len(cadena)
Devuelve la longitud de una cadena

strProd = "Active Server Page" Response.Write (Left(strProd, Len(strProd)-5))


El resultado:

Active Server

45

Creando Sitios de Comercio Electrnico

Convirtiendo a maysculas y minscula


Las funciones: LCase() y UCase(), convierte una cadena a masysculas y minsculas respectivamente. Ejemplo:

miNomr= "CESAR" Response.Write(LCase(miNom))


Se imprimir:

Cesar

miApe = "bustamante" Response.Write(UCase(Left(miNom,1)) & LCase(Mid(miNom,2))) Response.Write(UCase(Left(miApe,1)) & LCase(Mid(miApe,2)))


Se imprimir:

Cesar Bustamante

46

Creando Sitios de Comercio Electrnico

Buscando dentro de una cadena


Instr(Comienzo, Cadena1, Cadena2, Comparacion)
Devuelve la posicion de la ocurrencia de una cadena dentro de otra. El argumento Comienzo indica la posicion a partir de la cual se iniciar la bsqueda (por defecto desde el primer carcter). Cadena2 es el argumento que se va a buscar en la Cadena1. Comparacion, es opcional indica si la comparacion ser: 0 vbBinaryCompare (por defecto) 1 vbTextCompare, realiza comparacion textual Por ejemplo:

Response.Write( InStr(7, Cesar Bustamante, m) )


Se imprimir: 12

InstrRev(Comienzo, Cadena1, Cadena2, Comparacion)


Hace lo mismo que la funcion anterior, solo que en lugar de contar la ocurrencia por la izquierda lo efectuara contando por la derecha.

47

Creando Sitios de Comercio Electrnico

Manipulando Fechas y Horas


Definiendo el formato de Fecha y Hora
Para establecer el formato de fecha y hora utilice la funcin: FormatDateTime (). FormatDateTime(Fecha[,Formato]) El parmetro del formato puede tener uno de los valores siguientes: 0 1 2 3 4 vbGeneralDate vbLongDate vbShortDate vbLongTime vbShortTime Formato normal. Formato de fecha largo Formato de fecha corta Hora en formato largo Hora en formato de 24 horas(el hh:mm)

Ejemplo:

dHoy = Now() Response.Write ("dHoy antes de estructurar: " & dHoy &" <BR>") Response.Write ("dHoy estructurado en 0 =" & FormatDateTime(dHoy,0) &" <BR>") Response.Write ("dHoy estructurado 1 =" & FormatDateTime(dHoy,1) &" <BR>") Response.Write ("dHoy estructurado 2 =" & FormatDateTime(dHoy,2) &" <BR>") Response.Write ("dHoy estructurado 3 =" & FormatDateTime(dHoy,3) &" <BR>") Response.Write ("dHoy estructurado 4 =" & FormatDateTime(dHoy,4) &" <BR>")
El resultado:

dHoy dHoy dHoy dHoy dHoy dHoy

antes de estructurar: 26/02/2002 11:47:18 AM estructurado en 0 =26/02/2002 11:47:18 AM estructurado 1 =Martes 26 de Febrero de 2002 estructurado 2 =26/02/2002 estructurado 3 =11:47:18 AM estructurado 4 =11:47

J En los servidores con Windows en ingles, la funcion: <%=FormatDateTime(Now, vbLongDate)%> la


fecha en ingls. Puede solucionar el problema, colocando antes: <% @LCID = 1034 %>

48

Creando Sitios de Comercio Electrnico

Extrayendo partes de una fecha


DatePart(Parte, Fecha [, PrimerDiaSemana, PrimerDiaAo]) Esta funcion devuelve una parte de una fecha PrimerDiaSemana, es un parmetro opcional devuelve uno de los valores siguientes: 1 2 3 4 5 6 7 domingo (valor predefinido) lunes martes mircoles jueves viernes sbado

El parmetro de Parte, puede tomar uno de los valores siguientes: yyyy - Ao q - Cuarto m - Mes y - Da del ao d - Da w - Da de la semana ww - Semana de ao h - Hora n - Minuto s - Segundo El argumento PrimerDiaAo, es una valor opcional, especifica la primera semana del ao, por defecto considera la primera semana del ao. Los argumentos que se puede pasar son: Constante VbUseSystem VbFirstJan VbFirstFourDays VbFirstFullWeek Valor 0 1 2 3 Descripcion Utiliza el soporte de Lenguaje Nacional (NLS), sealada en la API Inicia la semana el 1 de enero (por defecto) Comienza con la semana que tiene al menos, cuatro dias en la primera semana. Comienza con la primera semana completa del ao

J Por lo general, se obvian los parametros opcionales: PrimerDiaSemana y PrimerDiaAo, por tanto se
asume que el primer dia de la semana es domingo y el ao comienza con el 1ro de enero

49

Creando Sitios de Comercio Electrnico Ejemplo:

dHoy = Now() Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write Response.Write

("dHoy =" & dHoy &" <BR>") ("yyyy =" & DatePart ("yyyy", dHoy) &" <BR>") ("m =" & DatePart ("m", dHoy) &" <BR>") ("q =" & DatePart ("q", dHoy) &" <BR>") ("y =" & DatePart ("y", dHoy) &" <BR>") ("d =" & DatePart ("d", dHoy) &" <BR>") ("w =" & DatePart ("w", dHoy) &" <BR>") ("ww =" & DatePart ("ww", dHoy) &" <BR>") ("h =" & DatePart ("h", dHoy) &" <BR>") ("n =" & DatePart ("n", dHoy) &" <BR>") ("s =" & DatePart ("s", dHoy) &" <BR>")

Al ejecutar se mostraria:

dHoy =26/02/2002 11:42:43 AM yyyy =2002 m =2 q =1 y =57 d =26 w =3 ww =9 h =11 n =42 s =43

50

Creando Sitios de Comercio Electrnico

Agregando valores a una Fecha u Hora


DateAdd(Parte, Cantidad, Fecha) Con esta funcin puede agregar o substraer una cantidad a una fecha o tiempo. Cantidad, es el nmero que se quiere aadir o restar a una fecha (1, -4, 10, etc). Ejemplo:

dHoy = Now() Response.Write ("dHoy Response.Write ("dHoy " <BR>") Response.Write ("dHoy dHoy) &" <BR>") Response.Write ("dHoy <BR>") Response.Write ("dHoy & " <BR>") Response.Write ("dHoy <BR>") Response.Write ("dHoy &" <BR>")
Al ejecutar se obtiene:

=" & dHoy &" <BR>") ms 10 das =" & DateAdd ("d", 10, dHoy) & menos 10 das =" & DateAdd ("d", -10, ms 3 meses =" & DateAdd ("m", 3, dHoy) &" menos 3 meses =" & DateAdd ("m", -3, dHoy) ms 2 horas =" & DateAdd ("h", 2, dHoy) &" menos 2 horas =" & DateAdd ("h", -2, dHoy)

dHoy dHoy dHoy dHoy dHoy dHoy dHoy

=26/02/2002 11:44:59 AM ms 10 das =08/03/2002 11:44:59 AM menos 10 das =16/02/2002 11:44:59 AM ms 3 meses =26/05/2002 11:44:59 AM menos 3 meses =26/11/2001 11:44:59 AM ms 2 horas =26/02/2002 01:44:59 PM menos 2 horas =26/02/2002 09:44:59 AM

51

Creando Sitios de Comercio Electrnico

Calculando la cantidad de tiempo entre dos fechas


DateDiff(Parte, Fecha1, Fecha 2 [, PrimerDiaSemana, PrimerDiaAo]) Esta funcin es til para encontrar la cantidad de tiempo entre una fecha y otra. Parte es la cantidad de tiempo entre las dos fechas Ejemplo:

var1 = #30/08/1970# var2 = Date Response.Write ("var1 =" & var1 &" <BR>") Response.Write ("var2 =" & var2 &" <BR>") Response.Write ("var1 al var2 es" & DateDiff ("d", var1, var2) &" das <BR>") Response.Write ("var1 al var2 es" & DateDiff ("m", var1, var2) &" meses <BR>") Response.Write ("var1 al var2 es" & DateDiff ("yyyy", var1, var2) &" el ao(s) <BR>")
Los resultados:

var1 var2 var1 var1 var1

=30/08/1970 =26/02/2002 al var2 es 11503 das al var2 es 378 meses al var2 es 32 el ao(s)

52

Creando Sitios de Comercio Electrnico

Generando fechas validas


DateSerial(ao, mes, dia)
Devuelve una fecha, a partir del ao, mes y dia especificado. El Ao puede ser un numero de 100 a 9999 El mes un numero de 1 a 12 El dia un numero de 1 a 31

Response.Write ( DateSerial(1970,08,10) ) Response.Write ( DateSerial(2002,02,31) )


Muestra como resultado:

10/08/1970 03/03/2002
Dado que en el mes de enero del 2002 hay solo 28 dias, y se ha especificado 31, la funcion adaptara los dias restantes al mes siguiente, es decir 3 de marzo.

DateValue(Fecha)
Devuelve una fecha, pasada como argumento en formato de fecha larga. Ejemplo:

Response.Write ( DateValue(10,Setiembre,2002) )
Muestra como resultado:

10/09/2002

53

Creando Sitios de Comercio Electrnico

Obteniendo las partes de una fecha


Hay cinco funciones que le permitir obtener una determinada parte de una fecha:

Day(Fecha)
Retorna el dia de una fecha, un nmero entre 1 y 31,

Month(Fecha)
Retorna el numero del mes de una fecha, un nmero entre 1 y 12,

Year(Fecha)
Retorna el numero del ao de una fecha, un nmero como 2002

Weekday(Fecha)
Retorna el numero del dia en la semana, un numero entre 1-7, dnde 1 es domingo

MonthName(mes, abreviado)
Devuelve el mes en forma abreviada o larga

WeekDayName(DiaSemana, Abrevie, PrimerDia)


DiaSemana, es un nmero que representa el da de la semana (1-7) Abrevie es un valor logico que indica si la funcin retornar el nombre abreviado o no PrimerDia, si es 1 corresponde a domingo Ejemplo:

var1 = "30/08/1970" Response.Write ("var1 =" & Response.Write ("Para var1 Response.Write ("Para var1 Response.Write ("Para var1 Response.Write ("Para var1 WeekDay(var1, 1) &" <BR>") Response.Write ("Para var1 WeekDayName(WeekDay(var1),

var1 &" <BR>") el da es" & Day(var1) &" <BR>") el mes es" & Month(var1) &" <BR>") el ao es" & Year(var1) &" <BR>") el da de la semana es" & el nombre del dia es" & falso, 1) &" <BR>")

54

Creando Sitios de Comercio Electrnico

Al ejecutar se obtiene:

var1 Para Para Para Para Para

=30/08/1970 var1 el da es var1 el mes es var1 el ao es var1 el da de var1 el nombre

30 8 1970 la semana es 1 del dia es Domingo

55

Creando Sitios de Comercio Electrnico

Obteniendo la hora, minuto, segundos


Time()
Devuelve la hora del sistema

Hour(Hora)
Devuelve la hora

Minute(Hora)
Devuelve los minutos

Second(Hora)
Retorna los segundos de la Hora especificada en el argumento.

Timer()
Devuelve el numero de segundos transcurridos desde las 12 horas (medianoche)

TimeSerial(Horas, Minutos, Segundos)


Genera un dato Hora, con las Horas, Minutos y Segundos especificados

TimeValue(Hora)
Devuelve un dato tipo fecha

56

Creando Sitios de Comercio Electrnico Ejemplo:

<% Dim hora hora = Hour(Time()) 'Empezamos la comprobaciones de tiempo. If hora > 6 and hora < 13 then Response.Write ("<B>Buenos Dias</B>, son las: " ElseIf hora > 12 and hora < 20 then Response.Write ("<B>Buenas Tardes</B>, son las: ElseIf hora > 19 and hora < 24 then Response.Write ("<B>Buenas Noches</B>, son las: ElseIf hora >= 0 and hora < 7 then Response.Write ("<B>Buenas Noches</B>, son las: End If %>
Al ejecutar obtenemos:

& Time()) "& Time()) "& Time()) "& Time())

Buenos Dias, son las: 12:00:11 PM

57

Creando Sitios de Comercio Electrnico

Generando nmeros aleatorios


Rnd()
La funcion Rnd(), genera un nmero aleatorio entre 0 y 1. Requiere que en nuestro cdigo pongamos la instruccin Randomize.

<% Dim aleatorio Randomize ' Generamos un numero entre 1 y 10. Aleatorio = Int (Rnd*10) + 1 response.write "Numero aleatorio "& numero_azar %>

58

Creando Sitios de Comercio Electrnico

Dando formato a un numero


Numeros enteros
FormatNumber(Numero[, Decimal, CeroInicial, Parentesis]) El primer parmetro es el nico que se requiere, a menos que sea necesario indicar el numero de cifras decimales mediante el segundo parmetro. Con CeroInicial, puede indicar si se incluira cero, si el valor es fraccionario menor a uno. Mediante Parentesis, puede indicar si se encerrar con parentesis si el valor numerico es negativo Ejemplo:

var1 = 5443.354 var2 = -877743.2345 Response.Write ("var1 con formato=" & FormatNumber(var1, 2, -1, -1) &" <BR>") Response.Write ("var2 con formato =" & FormatNumber(var2, 1, -1, -1))
Al ejecutar se obtiene:

var1 con formato = 5,443.35 var2 con formato = (877,743.2)

Valores monetarios
FormatCurrency(Numero[, Decimal, CeroInicial, Parentesis]) Agrega al valor numerico el simbolo $ al inicio, la descripcion de los parametros son los mismos de la funcion antes citada. Ejemplo:

var1 = 5443.354 var2 = -877743.2345 Response.Write ("var1 con formato =" & FormatCurrency(var1, 2, 1, -1) &" <BR>") Response.Write ("var2 con formato =" & FormatCurrency(var2, 1, 1, -1))

59

Creando Sitios de Comercio Electrnico El resultado:

var1 con formato = $5,443.35 var2 con formato = ($877,743.2)

Porcentajes
FormatPercent(Numero[, Decimal, CeroInicial, Parentesis]) Agrega el simbolo % a una cantidad numerica. Ejemplo:

var1 = 5.4333 var2 = .823 Response.Write ("var1 con formato =" & FormatPercent(var1, 2, 1, -1) &" <BR>") Response.Write ("var2 con formato =" & FormatPercent(var2, 1, 1, -1))
Ejecutando se obtiene:

var1 con formato = 543.33% var2 con formato = 82.3%

60

Creando Sitios de Comercio Electrnico

Arreglos
Un arreglo est compuesto por un conjunto de elementos, que tienen un nombre comun, pero un subindice distinto. Si es unidimensional, corresponde a la representacion de un vector y si es bidimensional a una matriz. El elemento inicial de un arreglo inicia en cero, es decir el primer elemento seria miArreglo(0). Los arreglos son dinmicos, es decir puede cambiarse el tamao luego de haberse creado el arreglo.

Dim miArray(1) miArray(0) = "Jose" miArray(1) = "Gustavo" ReDim Preserve miArray(2) miArray(2) = "Cesar"
Incialmente de crea el arreglo miArray con dos elementos, luego se redimensiona a 3 elementos. Para crear el arreglo use:

Dim miArray(20)
Para redimensionar el arreglo use:

ReDim Preserve miArray(3)

61

Creando Sitios de Comercio Electrnico Ejemplo:

<HEAD> <TITLE>Usando arreglos</TITLE> </HEAD> <BODY> <% Dim aLista() Redim aLista(4) aLista(0) = "Pilar" aLista(1) = "Karen" aLista(2) = "Tamara" aLista(3) = "Gabriela" Response.Write "<P>" For n = 0 to 3 Response.Write aLista(n) & "<BR>" Next Response.Write "<P>Falta Claudia... </P>" Redim Preserve aLista(4) aLista(5) = "Claudia" Response.Write "<P>" For n = 0 to 4 Response.Write aLista(n) & "<BR>" Next %> </BODY>

NOTA: Si es un arreglo pequeo, puede crealo de la forma siguiente:

Dim aColores aColores = Array("Azul", "Verde", "Rojo")

62

Creando Sitios de Comercio Electrnico

Funciones para el tratamiento de arreglos


LBound(Arreglo [,Dimension])
Esta funcin retorna el menor valor contenido en uno de los elementos de un arreglo. Dimension (por defecto 1), es un parmetro opcional, especifica la dimensin del arreglo donde se quiere encontrar el ms bajo valor.

UBound(ArrayName [, ArrayDimension])
Esta funcin retorna el mayor valor contenido en uno de los elementos de un arreglo. Dimension (por defecto 1), es un parmetro opcional, especifica la dimensin del arreglo donde se quiere encontrar el ms alto valor.

Split(CadenaElementos[, Delimitador, Cantidad])


CadenaElementos, es una cadena que contiene una lista de elementos Delimitador, es el carcter usado para separar los elementos en CadenaElementos. Cantidad, es el nmero de elementos que sea convertir a arreglo. Ejemplo:

Dim miString, miArray, miString = "naranjas,manzanas,platanos" miArray = Split(miString,",")


Al ejecutar se obtiene, un arreglo con 3 elementos.

63

Creando Sitios de Comercio Electrnico

Los arreglos multi-dimensionales


Para crear un arreglo multi-dimensional simplemente especifique el nmero de columnas y filas. miArray(2,3) tendra 2 columnas y 3 filas, esto generaria un arreglo con 3 filas (de 0 a 2) con 4 columnas (de 0 a 3), es decir con 12 elemntos (3x4) 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3

Ejemplo:

Dim miArray(2,3) miArray(0,0) = "electrodomesticos" miArray(1,0) = "lustradora" miArray(2,0) = "10" miArray(0,1) = "electrodomesticos " miArray(1,1) = "tostador" miArray(2,1) = "12" miArray(0,2) = "perfumes" miArray(1,2) = "Carolina Herrera" miArray(2,2) = "40" miArray(0,3) = "perfumes" miArray(1,3) = "Aqua Brava" miArray(2,3) = "23" Response.Write (" <Table border=2 >") Response.Write (" <tr><td>Fila </td><td>linea</td>") Response.Write (" <td>Item</td><td>Cantidad</td></tr>") For i = 0 To UBound(miArray, 2) Response.Write (" <tr><td> #" & i &" </td>") Response.Write (" <td>" & miArray(0,i) &" </td>") Response.Write (" <td>" & miArray(1,i) &" </td>") Response.Write (" <td>" & miArray(2,i) &" </td></tr>") Next Response.Write (" </table>")
Al ejecutar se obtiene:

Fila 0 1 2 3

Linea electrodomesticos electrodomesticos electrodomesticos electrodomesticos

Item Cantidad lustradora 10 tostador 12 Carolina Herrera40 Aqua Brava 23

64

Creando Sitios de Comercio Electrnico

Instrucciones condicionales
Instruccin condicional simple
Esta instruccin presenta dos formas: La forma simple, indica que el Bloque de instrucciones se ha de ejecutar si la condicion es Verdadera

If (condicin) Then ' Bloque de instrucciones End If


La otra forma, indica que uno de los Bloques de instrucciones se ha de ejecutar dependiendo de la validez de la condicion.

If (condicin) Then ' Bloque de instrucciones 1 Else ' Bloque de instrucciones 2 End If
Una tercera forma indica, el uso de ElseIf a fin de discriminar otras posibilidades:

If (condicin) Then ' Bloque de instrucciones ElseIf (condicin) Then ' Bloque de instrucciones ElseIf (condicin) Then ' Bloque de instrucciones ElseIf (condicin) Then ' Bloque de instrucciones End If
Ejemplo:

1 2 3 4

If Num1> Num2 Then Response.Write ("Num1 es mayor que num2...") Else Response.Write ("Num2 es mayor que num1...") End If

65

Creando Sitios de Comercio Electrnico Tambien puede anidarse instrucciones, una dentro de otra, por ejemplo:

If Num1> Num2 Then If num3> num1 Then Response.Write ("Num3 es mayor que num1 y num2...") Else Response.Write ("Num3 es menor que num1...") End If Else If num3> num2 Then Response.Write ("Num3 es mayor que num2 y num1...") Else Response.Write ("Num3 es menor que num2...") End If End If

J Se sugiere evitar ordenes If anidades, en su lugar procure usar la orden condicional Select Case.
En el caso de anidamiento, no olvide cerrar correctamente cada orden If.

Ejemplo: Mediante el ejemplo siguiente se toma como ingreso el nombre y contrasea de un usuario, en base a ello se realiza la validacin.

<HEAD> </HEAD> <BODY> <FORM ACTION="Verificar.asp" METHOD="post"> Ingrese su login:<BR> <INPUT TYPE="text" NAME="Login"><P> Ingrese su contrasea:<BR> <INPUT TYPE="text" NAME="Clave"> <BR> <BR> <INPUT TYPE="submit"> </FORM> </BODY>

66

Creando Sitios de Comercio Electrnico El contenido de Verificar.asp, sera:

<HEAD> <TITLE>Verificando la contrasea </TITLE> </HEAD> <BODY> <% strLogin = Request.Form("Login") strClave = Request.Form("Clave") Response.Write "<H1>Verificando al usuario </H1>" If strLogin = "Gustavo" and strClave = gato Then Response.Write "Bienvenido Gustavo" Else If strLogin = "Cesar" and strClave = coyote Then Response.Write "Bienvenido Cesar" Else Response.Write "Usted es un usuario normal" End If End If %> </BODY>

67

Creando Sitios de Comercio Electrnico

Instruccin condicional mltiple


Esta orden resulta util, cuando se presenta mas de dos alternativas, para una determinada condicion. Es la solucion cuando se presenta ordenes If anidadas. Por ejemplo la secuencia:

If miVar = "1" Then Response.Write ("miVar ElseIf miVar = "2" Then Response.Write ("miVar ElseIf miVar = "3" Then Response.Write ("miVar ElseIf miVar = "4" Then Response.Write ("miVar End If
Podria sustituirse por:

=1") =2") =3") =4")

Select Case miVar Case "1" Response.Write Case "2" Response.Write Case "3" Response.Write Case "4" Response.Write Case Else Response.Write End Select
Ejemplo:

("miVar =1") ("miVar =2") ("miVar =3") ("miVar =4") ("es mas que cuatro...")

Veamos otra forma de envio de datos, al mismo que vemos la solucion usando la orden condicional multiple.

68

Creando Sitios de Comercio Electrnico

<HEAD> </HEAD> <BODY> <H1>Registro</H1> <FORM ACTION="DiaSeleccionado.asp" METHOD="post"> Elija un dia<BR> <SELECT NAME="Dia"> <OPTION VALUE="Lu">Lunes</OPTION> <OPTION VALUE="Ma">Martes</OPTION> <OPTION VALUE="Mi">Miercoles</OPTION> <OPTION VALUE="Ju">Jueves</OPTION> <OPTION VALUE="Vi">Viernes</OPTION> <OPTION VALUE="Sa">Sabado</OPTION> <OPTION VALUE="Do">Domingo</OPTION> </SELECT> <BR><BR> <INPUT TYPE="submit"> <INPUT TYPE="reset"> </FORM> </BODY>
DiaSeleccionado.asp

<HEAD> </HEAD> <BODY> <% varMes = Request.Form("Mes") Select Case varMes Case "Lu" Response.Write "Ha seleccionado Lunes" Case "Ma" Response.Write " Ha seleccionado Martes" Case "Mi" Response.Write " Ha seleccionado Miercoles" Case "Ju" Response.Write " Ha seleccionado Jueves" Case "Vi" Response.Write " Ha seleccionado Viernes" Case "Sa" Response.Write " Ha seleccionado Sabado" Case "Do" Response.Write " Ha seleccionado Domingo" End Select %> </BODY>

69

Creando Sitios de Comercio Electrnico

Instruccin repetitiva Do Loop


Esta orden repite un bloque de instrucciones cierta cantidad de veces dependiendo de la validez de una condicion. La orden puede presentar dos formas: La primera forma, evalua primero la condicion, de ser valida procedera a ejecutar el bloque de instrucciones, en su caso continuara con las instrucciones siguientes a dicha orden.

Do {While <Condicin> | Until <Condicin>} ' Bloque de instrucciones Loop


La otra forma ejecuta el bloque de instrucciones al menos una vez, su posterior ejecucion dependera de la validez de la condicion:

Do ' Bloque de instrucciones Loop {While <Condicin> | Until <Condicin>}


Ejemplo:

i = 0 Do While i <5 Response.Write ("i =" & i &" <BR>") i = i + 1 Loop


El resultado sera:

i=0 i=1 i=2 i=3 i=4

70

Creando Sitios de Comercio Electrnico Ejemplo: Un simple calculo de los dias transcurridos a la fecha:

<HEAD> </HEAD> <BODY> <% varInicio = 1 varDiaHoy = Day(Now()) varNum = 0 Do While varInicio <= varDiaHoy varNum = varNum + 1 Loop Response.Write "Total dias " & varNum & Transcurridos %> </BODY>

71

Creando Sitios de Comercio Electrnico

Instruccin repetitiva While Wend


Muy similar a la instruccin repetitiva DO. Ejecuta un grupo de instruccioes mientras la condicin sea verdadera.

While { Condicin} ' Bloque de instrucciones Wend


Esta instruccin resulta muy practica cuando se desea recorrer el contenido de una tabla:

While not rs.EOF Response.Write ("Nombre =" & rs("NomCliente") &"," & rs("ApeCliente") &" <BR>") rs.MoveNext Wend

La instruccin repetitiva For Next


Esta orden repite un bloque de instrucciones una cantidad especifica de veces

For var = Inicio To Fin Bloque de instrucciones Next


Ejemplo:

For i = 1 To 7 Response.Write(i = & i &" <BR>") Next


Tambien podemos usar la forma:

For each x in Request.ServerVariables Response.Write(x &" =" & Request.ServerVariables(x) &" <BR>") Next
Para ver por ejemplo el estado de las variables del servidor

72

Creando Sitios de Comercio Electrnico

<HEAD> </HEAD> <BODY> <FORM ACTION=Calculos.asp METHOD = post> <P>Fecha inicial: (mm/dd/yy) <BR> <INPUT TYPE=text NAME="FNac"> <P>Confirme la fecha actual<BR> <INPUT TYPE=text NAME="FHoy"><BR> <INPUT TYPE=submit> <INPUT TYPE=reset> </FORM> </BODY>
Calculos.asp

<HEAD> </HEAD> <BODY> <% varFNac=Request.Form("FNac") varFHoy=Request.Form("FHoy") varFNac = CDate(varFNac) varFHoy = CDate(varFHoy) varDias=(varFNac-varFHoy) varTotal = 0 For x = 0 to varDias varTotal = varTotal + 20 Next Response.Write "Total" & varTotal %> </BODY>

J En siguiente edicin todo lo referido al manejo de tablas, te agradeceremos remitirnos tus


inquietudes, aportarnos con ideas y por que no soluciones. De ti depende que este libro mejore en contenido. www.LibrosDigitales.NET

73

Creando Sitios de Comercio Electrnico

Edicin 1.1
Dentro de una semana
Prohibida la reproduccin total o parcial Sin nuestro consentimiento Derechos de copia reservados www.LibrosDigitales.NET

Prxima Entrega

74

Anda mungkin juga menyukai