You are on page 1of 25

Centro Atlntico

Programao Web com ASP - Active Server Pages

Joo Vieira
Centro Atlntico

Programao Web com ASP - Active Server Pages

Edies Centro Atlntico Portugal/2000

Reservados todos os direitos por Centro Atlntico, Lda. Qualquer reproduo, incluindo fotocpia, s pode ser feita com autorizao expressa dos editores da obra.

Programao Web com Active Server Pages Coleco: Tecnologias Autor: Joo Vieira Direco grfica: Centro Atlntico Capa: Paulo Buchinho

Centro Atlntico, Lda., 2000 Av. D. Afonso Henriques, 1462 - 4450 Matosinhos Tel. 22 - 938 56 28/9 Fax. 22 - 938 56 30 Rua da Misericrdia, 76 - 1200 Lisboa Tel. 21 - 321 01 95 Fax 21 - 321 01 85 Portugal

geral@centroatlantico.pt www.centroatlantico.pt

Fotolitos: Centro Atlntico Impresso e acabamento: Rolo & Filhos 1 edio: Janeiro de 2000

ISBN: 972-8426-21-6 Depsito legal: 146.485/00

Marcas registadas: todos os termos mencionados neste livro conhecidos como sendo marcas registadas de produtos e servios, foram apropriadamente capitalizados. A utilizao de um termo neste livro no deve ser encarada como afectando a validade de alguma marca registada de produto ou servio. O Editor e os Autores no se responsabilizam por possveis danos morais ou fsicos causados pelas instrues contidas no livro nem por endereos Internet que no correspondam s HomePages pretendidas.

Dedico este livro aos meus pais, Maria de Jesus S. R. Sousa Vieira, Antnio Tiago Vieira

ndice
1. Introduo s Active Server Pages
1.1 1.2 1.3 1.4 1.5 1.6 1.7 Do Autor Requisitos para as ASP ASP vs. JavaScript / VBScript Instalar o servidor de Internet Programar com ficheiros ASP e HTML Conhecer o HTML (Hyper Text Markup Language) em 12 passos Sites com recursos de ASP 12 13 15 16 19 19 23

2. Expresses e Operadores
2.1 Os primeiros passos 2.1.1 Exemplo: Ol Portugal 2.1.2 Exemplo: Ol Portugal com varivel 2.1.3 Exemplo: Clculo de variveis 2.1.4 Exemplo: Cdigo ASP embebido em HMTL IF, THEN, ELSE, END IF 2.2.1 Exemplo: Comparao entre variveis FOR, WHILE, CASE 2.3.1 Exemplo: Comparao de variveis com ciclos 2.3.2 Exemplo: Select Case 2.3.3 Exemplo: Contadores ASP embebidos em HMTL 2.3.4 Exemplo: HMTL embebido em contadores ASP Variveis Tabela de Operadores 2.5.1 Exemplo: Comparao de varivel entre valores 37 2.5.2 Exemplo: Utilizao de todos os operadores 28 28 29 29

2.2

30

2.3

32 33 33 34 35

2.4 2.5

38

3. Funes
3.1 3.2 Tabela de funes base das ASP As nossas funes 3.2.1 Exemplo: N dias at o ano 2001 3.2.2 Exemplo: Validar o e-mail 3.2.3 Exemplo: Criar uma ComboBox a partir de um array 3.2.4 Exemplo: Criar um grfico em HTML a partir de um array Uso de SSI (Server Side Includes) com as nossas funes 3.3.1 Exemplo: Uso de um ficheiro externo com SSI 3.3.2 Exemplo: Ficheiro com todas as funes 3.3.3 Exemplo: ASP que usa o ficheiro com todas as funes 40 48 50 52 53

3.3

56 57 58

4. Objectos
4.1 4.2 4.3 Tabela de Objectos Variveis globais e de sesso Interagir com o utilizador 4.3.1 Exemplo: Responder ao utilizador com os dados recolhidos 4.3.2 Exemplo: Validar formulrio 4.3.3 Exemplo: Curso online 4.3.4 Exemplo: Proteco de pginas com password Ficheiro global.asa 4.4.1 Exemplo: Quantos utilizadores esto a visitar a pgina 4.4.2 Exemplo: Chat em Browser Cookies, dados do utilizador e do servidor 4.5.1 Exemplo: Recolher dados do utilizador 4.5.2 Exemplo: Pginas personalizadas Formatao de strings 62 65

72 73 81 88

4.4

100 102

4.5

105 107 108

4.6

5. Bases de dados
5.1 5.2 5.3 5.4 Bases de Dados / SQL Construir uma base de dados em Microsoft Access Conexo base de dados Inserir, apagar e actualizar dados em bases de dados 5.4.1 Exemplo: Inserir dados 5.4.2 Exemplo: Eliminar dados 5.4.3 Exemplo: Actualizar dados Apresentao de dados 5.5.1 Exemplo: Listar dados em tabela 5.5.2 Exemplo: Listar dados com imagens 5.5.3 Exemplo: Listar dados a pedido Exemplos com bases de dados 5.6.1 Exemplo: Livro de Visitas 5.6.2 Exemplo: Sondagens de opinio 114 117 122 127 135 137

5.5

142 144 146 148 152

5.6

6. Componentes
6.1 6.2 Introduo aos Componentes Tratamento de ficheiros de texto com o TextStream 6.2.1 Exemplo: Histria sem fim 6.2.2 Exemplo: Contador de acessos Componentes de e-mail 6.3.1 Exemplo: Envio de e-mail com attachment Criar componentes em Visual Basic 6 6.4.1 Exemplo: Componente Livro de Visitas 156 159 163 164 173

6.3 6.4

7. Exemplos reais
7.1 7.2 7.3 Introduo A R: Motor de Busca A Loja: Loja E-Commerce 182 183 197

Pea gratuitamente o seu e-book

Receba gratuitamente, por e-mail, a verso digital (e-book) deste livro, para poder utilizar todos os programas sem ter que os re-escrever. Para tal, envie a cpia da factura deste livro para o Centro Atlntico, para o e-mail geral@centroatlantico.pt ou por correio para, Centro Atlntico Ap. 413 4760 V. N. Famalico

Expresses e Operadores
2.1 Os primeiros passos 2.1.1 Exemplo: Ol Portugal 2.1.2 Exemplo: Ol Portugal com varivel 2.1.3 Exemplo: Clculo de variveis 2.1.4 Exemplo: Cdigo ASP embebido em HMTL

2
28 28 29 29

2.2 IF, THEN, ELSE, END IF 2.2.1 Exemplo: Comparao entre variveis 30 2.3 FOR, WHILE, CASE 2.3.1 Exemplo: Comparao de variveis com ciclos 2.3.2 Exemplo: Select Case 2.3.3 Exemplo: Contadores ASP embebidos em HMTL 2.3.4 Exemplo: HMTL embebido em contadores ASP 2.4 Variveis 2.5 Tabela de Operadores 2.5.1 Exemplo: Comparao de varivel entre valores 2.5.2 Exemplo: Utilizao de todos os operadores

32 33 33 34 35

37 38

28 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES

2.1 Os primeiros passos


Para comear irei demonstrar-lhe, em apenas uma linha, como poder escrever uma frase; depois veremos o mesmo no HTML, com variveis e aces entre variveis. Isto ainda antes de definir os objectos, mtodos, expresses, funes e regras das ASP. Terei como princpio que o leitor tem conhecimentos de HTML, visto ser a base de toda esta programao (programao Internet).

(ficheiro cpt2-1-1.asp)

<%response.writeOl Portugal%>

Vemos aqui algo que nos salta vista e que so os <% %>. Como se pode facilmente verificar, estes so os identificadores de onde comea e acaba a ASP que foi construda, pois quando introduzirmos cdigo entre o HTML, teremos de definir onde esto as ASP, e estes indicadores sero determinantes para esse propsito. Response um objecto das ASP que conta com bastantes mtodos. Este e o objecto Request vo ser sem sombra de dvidas aqueles com que ir trabalhar mais. Encontra uma tabela no captulo seguinte com os objectos principais e seus mtodos de maneira que sempre que necessitar os possa encontrar mais rapidamente consultando a tabela.

(ficheiro cpt2-1-2.asp)

<% pais = Portugal response.writeOl & pais %>

Este segundo exemplo demonstra uma abordagem diferente mas com o mesmo resultado no browser. Aqui pretendo demonstrar a maneira como se fazem ligaes com o smbolo &

CAPTULO 2: EXPRESSES E OPERADORES 29

Fig 2.1 - Resultado dos ficheiros cpt1-4-1.asp e cpt1-4-2.asp

Se quisermos usar variveis numricas, e calcular algo com elas, temos ento o exemplo seguinte:

(ficheiro cpt2-1-3.asp)

<% a = 10 b=2 response.write a * b %> Como j deve ter verificado, este tipo de linguagem usa variveis (tambm elas dinmicas) que no necessitam de inicializao, podendo ser criadas em qualquer momento. Apesar de haver uma maneira em que o obrigado a fazer (com Explicit) mas s se assim o definir. Outro ponto bastante agradvel de que no necessita de marcadores para definir o final de cada linha. Por exemplo, em a=10. No necessrio ponto e vrgula ou outro qualquer marcador para terminar uma linha de cdigo.
(ficheiro cpt2-1-4.asp)

<% iniciar a varivel cptvar=passear%> <HTML> <BODY> <FONT SIZE=6 >Eu hoje fui <%=cptvar%>, para o Alentejo</FONT> </BODY> </HTML>

30 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES


Neste exemplo foi feito aquilo que de mais normal vai ser feito no resto deste manual - usar as variveis geradas ou no nas ASP e introduzi-las no meio do cdigo HTML. Repare no truque para que a varivel fique entre o HTML. No foi necessria a rotina response.write, sendo ento introduzido apenas o caracter de igualdade seguido da varivel. A plica usada para comentar, sempre que quisermos introduzir algum comentrio ao cdigo. Neste livro vamos us-la com frequncia para dar explicaes adicionais de algumas situaes a nvel de programao. Julgo que com estes exemplos o leitor ficou a perceber como se estrutura de um modo geral a programao em ASP.

2.2 IF, THEN, ELSE, END IF


Vamos ento iniciar alguma programao bsica e essencial, aquilo que une toda a programao, e que so os operadores e as expresses. Vou comear pelas expresses, e deixar uma tabela de operadores para o final deste captulo (visto que so bastante poucos). Entretanto estes vo sendo usados nos prximos exemplos.

(ficheiro cpt2-2-1.asp)

<% a= 10 b=100 if a < b then response.write a menor que b else if a > b then response.write a maior que b end if end if %>

CAPTULO 2: EXPRESSES E OPERADORES 31 A expresso IF, foi aqui usada para que em conjunto com o operador < , fizessem uma comparao. A mensagem que vai ser enviada para o browser, depende dos valores a e b. O IF tem uma estrutura simples: IF (ALGO) THEN (FAZ MAIS ALGO) END IF Ou quando as opes so vrias: IF (ALGO) THEN (FAZ ALGO) END IF IF (ALGO2) THEN (FAZ ALGO2) END IF IF (ALGO3) THEN (FAZ ALGO3) END IF Mas se as opes esto em cadeia, e se uma acontecer, as outras tm de ficar anuladas. Teremos de usar a expresso ELSE: IF (ALGO) THEN (FAZ ALGO) ELSE IF (ALGO2) THEN (FAZ ALGO2) ELSE IF (ALGO3) THEN (FAZ ALGO3) END IF END IF END IF Este tipo de expresses d muito jeito aos programadores, mas quando existem vrias opes em cadeia, eu sugiro que se use a expresso CASE; fica melhor organizado, e as confuses dentro do cdigo so bastante menores. Estas pequenas regras que vou escrevendo neste manual, no so propriamente para serem seguidas religiosamente. Se calhar o leitor nem vai ter muitos problemas, mas quando o cdigo comea a ficar muito extenso, o programa tende a ficar confuso. Notar isso se l voltar ao fim de uns meses para fazer manuteno (muito comum em sites na Internet).

32 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES

2.3 FOR, WHILE, CASE


As expresses de repetio, usadas pelas ASP, so conhecidas de qualquer programador, no sendo por isso algo que precise de uma especial ateno para as tentar perceber.

(ficheiro cpt2-3-1.asp)

<% a= 4 b=12 if a < b then comparao entre dois valores for I=0 to a ciclo FOR response.write a( & a & ) maior que & I & <br> o smbolo <br> em HTML simboliza mudana de linha no mesmo pargrafo next I final de ciclo FOR else if a>b then I=a While b<I ciclo WHILE Response.write b( & b & ) menor que & I & <br> I=I1 wend final de ciclo WHILE end if end if %>

Neste caso aproveitei cdigo de um exemplo inteiro, para lhe dar mais umas linhas com este ciclo WHILE. Inicialmente faz-se a primeira comparao, que se repetir enquanto a mesma for vlida. Neste caso enquanto b for menor que I, o ciclo (loop) vai sendo concretizado. A minha expresso de repetio favorita, a CASE, muito flexvel e rpida. Por mais tarde que eu volte a mexer no cdigo, fico a sempre perceber o que l se passa em minutos.

CAPTULO 2: EXPRESSES E OPERADORES 33


(ficheiro cpt2-3-2.asp)

<% resposta = 4 Select case resposta case 1 response.write No & resposta case 2 response.write No & resposta case 3 response.write Acertou & resposta case 4 response.write No & resposta case else response.writeDesconhecido. end select %> Neste case a comparao feita por hipteses em funo de uma resposta (varivel resposta), tendo-se ateno mesma, iremos fazer uma comparao com as hipteses possveis (1, 2, 3 e 4 so as nicas possveis) e executar a declarao correspondente (se acertou ou se no acertou).

(ficheiro cpt2-3-3.asp)

<CENTER><TABLE BORDER=1> <% contador = 1 while contador<6%> <TR> <TD BGCOLOR=RED> <FONT COLOR=WHITE><%=contador%></FONT></TD> <TD><%=(contador-1)%></TD> <TD><%=(contador+1)%></TD> <TD><%=(contador*100)%></TD> </TR> <% contador = contador + 1 wend %> </TABLE></CENTER>

Neste caso, fui usar novamente o WHILE, mas com o intuito do leitor perceber a potencialidade de trabalhar com tabelas - no final de contas aquilo que mais vai usar se o destino que pretende dar aos seus conhecimentos de ASP for a programao com bases de dados. Introduzindo o valor que se quer dentro de cada clula da tabela, o truque que origina, as grandes tabelas dos sites de comrcioelectrnico. Alm de texto, pode introduzir um novo esquema de tabelas e/ou imagens.

34 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES

Fig. 2.2 - Resultado do ficheiro cpt2-3-3.asp

(ficheiro cpt2-3-4.asp)

<% contador = 1 while contador<8 %><FONT face=ARIAL size=<%=contador%>>TESTE</FONT><BR> <%contador=contador + 1 wend %>

Neste caso, foi-se alterar uma opo das Tags de HTML, para que no fosse preciso repetir a mesma 8 vezes. Este j um pensamento a seguir pelo programador de ASP - tentar evitar escrever muitas linhas de cdigo, e sim optimizar ao mximo todas as funes que vier a criar.

Fig. 2.3 - Resultado do ficheiro cpt2-3-4.asp

CAPTULO 2: EXPRESSES E OPERADORES 35

2.4 Variveis
Nas ASP, as variveis so tambm, como no Visual Basic, dinmicas, no sendo por isso necessria a sua inicializao. Seja como for, m programao usar variveis globais sem controlo sobre as mesmas. Deve-se usar, mas no em excesso, assim como se devem sempre inicializar as mesmas, no s para melhor controlo, mas tambm para melhor performance. Para que no se desleixe com as variveis, use o cdigo <% Option Explicit %> no incio de cada pgina para que tenha de inicializar sempre as variveis. Assim, as alocaes de memria, para as variveis dinmicas, sero feitas com uma melhor estrutura, ficando por esse motivo beneficiado o desempenho das suas pginas.

Para inicializar uma varivel em ASP basta usar Dim . Para criarmos a varivel xpto usamos ento <%Dim xpto%>

Temos nas ASP, alguns tipos de variveis a considerar: - variveis usuais (usadas no momento, e que, como so dinmicas, podem ser criadas a qualquer altura sem inicializao das mesmas; podemos incluir os arrays neste grupo, que podem ser passados para as variveis de sesso). Normalmente quando as inicializamos usamos a expresso Dim varivel - variveis Application (usadas como globais no site pois todos os utilizadores tm acesso mesma); - variveis de sesso/Session (usadas para acompanharem toda uma sesso de acesso por parte de um utilizador, mas s acessveis por este, e no por todos como as de Application).

36 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES

2.5 Operadores
Apesar de j terem sido praticamente todos usados neste captulo, vou ento deixar uma pequena tabela dos operadores, para referncia. Os operadores de comparao e igualdade so os seguintes: TIPO DE OPERADOR = DESCRIO Igualar a if a = b c=d Menor do que if a < b while c < x Maior do que if a > b while c > x Menor ou igual do que if a <= b while c <= x Maior ou igual do que if a >= b while c >= x Diferente de if a <> b while c <> x

<

>

<=

>=

<>

Estes so os operadores principais das ASP, e ser com estes que iremos trabalhar ao longo deste manual. Estes operadores no sero usados nica e exclusivamente no cdigo de ASP, mas tambm aquando do uso de declaraes de SQL.

CAPTULO 2: EXPRESSES E OPERADORES 37 Quando queremos fazer comparaes mltiplas podemos ento usar AND ou OR, como nos seguintes casos:
(ficheiro cpt2-5-1.asp)

<% a = 10 b = 20 c = Teste If a > 9 AND a <=20 then Response.write (a) est entre 9 e 20 <br> End if %>

Nos operadores aritmticos temos ento uma outra tabela: TIPO DE OPERADOR ^ DESCRIO Usado para expoente, (Para o caso de 26, temos nas ASP , (2^6)) Multiplicador, (2*5) Diviso para retornar valor singular (a / b) Diviso inteira (a \ b) Soma (a+b) Este valor tambm funciona para concatenao tal como o smbolo & Diferena (ab) Resto da diviso ( a MOD b )

MOD

Podemos ento demonstrar todos os operadores aritmticos da tabela anterior, num ficheiro de ASP.

38 CENTRO ATLNTICO - PROGRAMAO WEB COM ACTIVE SERVER PAGES


(ficheiro cpt2-5-2.asp)

<% a=2 b=8 c = 10 st1 =Desta maneira st2 = tambm podemos concatenar strings. Response.Write a = 2<br> Response.Write b = 8<br> Response.Write c = 10<br> Response.write st1 = Desta maneira<br> Response.write st2 = tambm podemos concatenar strings.<br> Response.Write <br><br> Response.Write - b^a -> & b^a & <br> Response.Write - a*b -> & a*b & <br> Response.Write - c/a -> & c/a & <br> Response.Write - a\b -> & a\b & <br> Response.Write - a-b -> & a-b & <br> Response.Write - a+b -> & a+b & <br> Response.Write - c MOD a -> & c MOD a & <br> Response.Write - st1 + st2 -> & st1+st2 & <br> %> E para se perceber um pouco melhor o que est a acontecer neste cdigo, pode recorrer seguinte imagem, que julgo responder a qualquer dvida com que possa ter ficado.

Fig. 2.4 - Resultado do ficheiro cpt2-5-2.asp

Estes operadores so muito importantes na medida em que todo o tipo de estatsticas, contas, comparaes e clculos extra os iro requerer. No dia a dia, as empresas precisam de certas situaes resolvidas que por vezes no tm soluo nas funes pr-definidas das ASP, e nessa altura ter de ser o leitor a desenvolver as suas prprias funes, por meio destes operadores de base.

Coleco O Melhor da Internet


Os melhores sites nacionais e internacionais da Internet organizados por profisso ou rea de interesse

Coleco Sociedade da Informao


Os temas de fundo da Sociedade da Informao apresentados pelos maiores especialistas nacionais

Coleco Tecnologias
Todas as tecnologias de destaque da Internet tratadas pela equipe de tcnicos do Centro Atlntico

Coleco Direito das Novas Tecnologias


A nova economia, dependente das tecnologias da informao, traz consigo novos desafios e ameaas. Quais as respostas dos nossos Juristas, tribunais, compndios e legislao?

Coleco Desafios
O que nos reservam os tempos que se aproximam em que as novas tecnologias invertem muitas das certezas adquiridas

Coleco Solues
Solues prticas para resolver novas questes levantadas pelas tecnologias da sociedade da informao

Para encomendar qualquer ttulo do Centro Atlntico queira preencher esta folha de encomenda e envi-la por fax ou correio com o seu pagamento.

Ttulo
Coleco O Melhor da Internet

Quant. _____ _____ _____ _____ _____ * * * * *

Total Preo Total

www.centroatlantico.pt/titulos

O Melhor da Internet para o Direito O Melhor da Internet para Informticos O Melhor da Internet para Engenheiros O Melhor da Internet para o Marketing O M.Internet p/ Gestores e Empresrios Coleco Sociedade da Informao Crnicas da InforFobia Homo Conexus * Ano 2000 e Informtica Coleco Tecnologias * Guia do Internet Explorer verso 4 * Guia do Internet Explorer verso 5 * Guia do Netscape Communicator v 4 Agentes Inteligentes TOP 100 Internet 1999

950$ 950$ 950$ 950$ 950$

= = = = =

_______ _______ _______ _______ _______

_____ * 1.800$ = ______ _____ * 1.950$ = ______ _____ * 1.950$ = ______ _____ _____ _____ _____ _____ * * * * * 2.950$ 2.950$ 2.950$ 2.950$ 2.450$ = = = = = ______ ______ ______ ______ ______

Coleco Direito das Novas Tecnologias Direito da Informtica nos tribunais .pt _____ * 2.450$ = ______ Coleco Desafios Vertigem - Tendncias para o Sc. XXI _____ * 4.950$ = ______ O Futuro da Internet _____ * 2.950$ = ______ Coleco Solues O Vrus do ano 2000 O Guia do Telemvel: 99 sugestes * Inclui CD-ROM TOTAL = ________ Sem Despesas de envio
As encomendas directas ao Centro Atlntico no pagam custos de portes.

_____ * 1.600$ = ______ _____ * 1.250$ = ______

SIM, desejo receber os ttulos que assinalei sem qualquer despesa de envio. Junto envio cheque/Vale n ____________ ordem do Centro Atlntico Prefiro que debitem no meu carto de crdito emitido em nome de _______________________________ Nmero do carto de crdito _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Validade _ _ / _ _ Nome ___________________________________________ Morada ___________________________________________ CP ________ Localidade ______________________ Tel ________________ Fax ____________________ Caso alguns dos ttulos no estejam disponveis enviaremos os que existirem em stock e pediremos confirmao no futuro para envio dos ttulos em falta. Centro Atlntico - Av. D. Afonso Henriques, 1462 - 4450 Matosinhos Fax. 21 - 321 01 85 ou 22 - 938 56 30

You might also like