Manual de ASP
Manual de ASP
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
A Internet é um conjunto de redes de computadores interligados pelo mundo inteiro, que têm em
comum um conjunto de protocolos e serviços, de forma que os cibernautas a ela ligados possam usufruir de
serviços de informação e comunicação de alcance mundial tais como: e-mail, servidores Web, ftp, irc, icq etc.
Trata-se da mais bem sucedida aplicação prática do conceito de interoperabilidade, que consiste
em ligação de redes de tecnologias distintas. Isso só foi conseguido graças ao conjunto de protocolos
conhecidos como TCP/IP(Transmission Protocol/Internet Protocol).
Mas o que popularizou mesmo a Internet foi a criação da World Wide Web. Trata-se de um serviço
para a transmissão multimédia de informações implementado pelo protocolo de aplicação HTTP(Hypertext
Transfer Protocol).
Um Cliente HTTP (Browser WEB) comunica com um servidor HTTP(Servidor WEB) requisitando
ficheiros. Geralmente esses ficheiros estão no formato HTML (Hypertext Markup Language) que pode conter
referências para outros ficheiros diversos(imagens, sons, vídeos etc). Ao receber o ficheiro HTML o cliente
verifica cada referência, solicitando ao servidor HTTP os ficheiros indicados.
Esse modelo de funcionamento limita bastante o uso da Web uma vez que as páginas HTML têm
um conteúdo estático, ou seja, sempre são exibidas da mesma forma e não possibilitam nenhuma
interactividade com o utilizador.
Para deixar a Web mais dinâmica e interactiva, criou-se o CGI(Common Gateway Interface). Agora
podemos ter programas num servidor Web que podem ser requisitados por um cliente Web. O programa é
processado e o resultado desse processamento é enviado pelo servidor Web ao cliente, geralmente no formato
HTML. É importante percebermos onde está o dinamismo do CGI: o processamento de tais programas pode
retornar diferentes resultados, dependendo dos parâmetros informados pelo cliente(interacção) ao programa
CGI.
Apesar de dar mais “vida” à web, os programas CGI possuem uma série de desvantagens
técnicas, sendo a principal delas o facto de tais programas executarem num processo diferente do Web Server.
Sendo assim, um servidor web que recebesse várias requisições simultâneas, fácilmente se sobrecarregava e
parava.
Por isso surgiram, e ainda surgem a cada dia, tecnologias alternativas ao uso do CGI: ISAPI,
NISAPI, IDC/HTX, Cold Fusion, Java Server Pages(JSP), Personal Home Page(PHP), Active Server
Pages(ASP) etc.
Evolução das páginas Web:
HTML
CGI
php
ASP .NET
JAVA
Microsoft
Sun
Interpretação da imagem:
1. O browser do Utilizador faz a chamada a uma página .ASP localizada no servidor web.
4. Como resultado do processamento, sai uma página HTML, que é enviada para o browser do Utilizador
(5).
Como os scripts rodam no servidor, este faz todo o processamento e, na verdade, o que chega ao Utilizador
são páginas HTML padrão. A partir disso, podemos chegar a duas importantes conclusões:
2. O código-fonte dos scripts (em VBScript ou Jscript) não é visto pelo Utilizador. O que ele vê é o HTML
gerado pelo servidor web.
A primeira coisa a se fazer é criar um novo Web site. Basta ir no menu Action New Site Web,
indicar a descrição do novo site, indicar o IP da máquina e o número da porta do servidor Web( normalmente
80), indicar o caminho para a pasta do site e, para finalizar, informar as permissões de acesso:
Acesso de Leitura
Acesso de Script
Acesso de Execução
Acesso de Gravação
Pesquisa em pasta
Depois de criar o novo site, pode alterar suas configurações clicando no mesmo com o botão
direito do rato, escolhendo a opção propriedades:
Opção Descrição
Configuração do IP, portas de ligação, limite de
Site da Web ligações, Activação do Log
Designar contas administrativas p/ site
Operadores
Optimização
Desempenho
Adicionar/Remover filtros ISAPI
Filtros ISAPI
Configurar permissões de acesso e pasta base
Pasta Base
Personalizar os erros do Servidor Web
Erros Personalizados
Configurar autenticação de utilizadores, segurança de
comunicação e restrições a endereços IP
Pasta de Segurança Definir ficheiros padrões
Documentos
O IIS também possui o recurso de Directórios (pastas) Virtuais. Eles servem para que os
utilizadores Web possam aceder ao seu conteúdo, sem precisar saber sua localização física no disco do
servidor. Camuflando a estrutura real do disco, é possível prevenir contra possíveis ataques de hackers e
facilitamos a vida dos utilizadores Web, pois se mudarmos a estrutura interna de armazenamento, o endereço
virtual não será afectado. Cada directório (pasta) virtual criado possui suas próprias configurações de
segurança, permissões de acesso, erros personalizados, documentos padrões etc.
Para criar um directório(pasta) virtual, clique com o botão direito do mouse no Web Site onde este
deverá se localizar New Pasta Virtual. Informe então um nome (compatível com o site) para o directório
virtual, especifique o directório físico onde estarão as páginas desse directório, especifique as permissões de
acesso de seus utilizadores. Para que páginas ASP sejam executadas, deve-se pelo menos marcar a
permissão de Script. Caso contrário, o servidor Web retornará as página ASP desse directório aos clientes da
mesma forma que estão armazenadas(com todos os comandos de scripts visíveis aos utilizadores).
Quando você desejar publicar uma página na Web basta criar o ficheiro ASP ou HTML e guardá-lo
numa pasta física relacionada a algum directório virtual. Para aceder ao ficheiro por um Browser, informe o
seguinte URL:
http://nome_do_servidor/nome_directorio_virtual/nome_página
ou
http://localhost/nome_directorio_virtual/nome_página
Para utilizar código ASP nas suas páginas Web e que para depois as possa correr (testar), é
necessário atender aos seguintes requisitos. Antes de mais nada:
Certifique-se que o computador que vai alojar as páginas ASP, funciona com o S.O. Windows NT
Server, Windows 2000, Windows XP Professional ou Windows 98.
Certifique-se que você tem a mais recente versão do Microsoft Internet Information Server (IIS)
instalado, o Peer Web Services (PWS) ou mesmo o Personal Web Server (PWS, também) instalado
nesse computador.
Se pretende utilizar os recursos de acesso a Bases de dados, certifique-se os dados estão acessíveis
através de driver ODBC. Vai necessitar de um driver de ODBC instalado e funcionado no servidor. Se
optou por usar o Access, instale uma versão 7.0 (95) ou superior no Servidor. Isto garantirá a presença
do driver ODBC e facilitará a criação das suas Bases de dados. Se preferir utilizar o SQL Server,
garanta que o driver ODBC está instalado.
Se pretende usar os recursos de acesso a Bases de dados, verifique a existência de uma "Fonte de
Dados" ODBC para este Base de dados. Isto é feito usando a opção "ODBC" do "Painel de Control"
(Control Panel) do Windows. Se for usar o SQL Server, crie um utilizador com direito para aceder à
Base de dados.
Crie uma pasta para guardar as páginas ASP no seu servidor. Inclua essa pasta na lista do IIS/PWS,
dando direito de "Execute/Execução". As páginas ASP só podem ser corridas a partir de um directório
com o direito de "Execução". Não habilite a opção de "Read/Leitura", para aumentar sua segurança
nessa pasta.
Já aprenderam a instalar e gerir o Servidor web (IIS) no módulo anterior, por isso vamos passar a
utilizar esse servidor Web que instalaram, para correr os nossos scripts ASP.
Garantidos os requisitos acima mencionados, pode começar a criar a primeira página ASP.
Toda a funcionalidade e “Inteligência” de uma página ASP é controlada através de comandos de Script.
Teoricamente, o ASP pode utilizar qualquer Script Engine(interpretador), mas na prática a Microsoft só
disponibiliza dois:
Visual Basic Script (VBScript) – por defeito, se não indicar nenhuma linguagem
MS Java Script(JScript)
Ao escrevemos páginas *.ASP a primeira coisa que devemos fazer é indicar em qual dessas
linguagens disponíveis elas serão escritas, e que pode ver mais abaixo:
ou
Vantagens do ASP
Independência do browser: ASP pode correr páginas complexas (e dinâmicas) no servidor e enviar só
os resultados para o cliente.
Páginas x Bases de Dados: Permite visualizar, actualizar, apagar e adicionar informações nos
servidores SQL Server (mais uma BD da Microsoft) ou mesmo numa BD do Access
Segurança do código fonte: Como o Servidor devolve só o resultado em html, o código fonte (lógica)
fica salvaguardada.
Linguagens: O ASP pode utilizar de comandos em VBScript, JavaScript e Html.
1º Exercício: Antes de começar a criar as páginas ASP, vamos criar o nosso directório virtual:
Configurando o PWS
ícone do PWS (
) no seu desktop
web..
b) O Servidor será iniciado, como pode ver. Na área "Principal", você verá que o serviço web está activo, que
sua home page pode ser encontrada no endereço http://nome_da_sua_maquina . De seguida, clique no ícone
“Avançadas”, como vem indicado na figura em baixo:
c) Uma pasta virtual é como se criássemos um atalho no servidor web para uma pasta localizada fisicamente
(no disco) noutro local. Por exemplo, clique na pasta "IISADMIN" e edite as propriedades dele....
Uma dica importante sobre o campo : “Documento(s) predefinido(s) “, não se esqueça de que o valor deste
campo pode variar de servidor para servidor (normalmente é index.htm ou index.html; ou ainda default.htm ou
default.html....ou mesmo default.asp...como pode constatar na imagem). Por isso, quando for colocar o seu site
na Internet, verifique quais são os nomes de documentos padrões do servidor onde o seu site será alojado.
Por exemplo, suponha que no seu site você criou a página inicial de nome "default.asp", e que aparece
normalmente no servidor local, que tem como documento padrão "default.asp". Se o servidor onde será alojado
o seu site na Internet tiver como documento padrão "index.asp", você será obrigado a renomear a sua página
principal e alterar todos os links no seu site para ela.
Vamos então começar a criar as nossas páginas ASP, e perceber mais um pouco sobre esta linguagem que
permite criar dinamismo e interactividade, nas páginas web.
Pode criar a seguinte página ASP, escrevendo o código que está aí , no “Bloco de Notas”, ou no
Frontpage 2000...e guarde com o nome : now.asp
Exemplo nº 1 – now.asp
Observação : Tente abrir esta página utilizando o caminho físico da mesma e veja o que acontece quando você
tenta visualizar o código fonte. Depois, execute através do URL http://servidor/diretorio_virtual/now.asp e faça o
mesmo teste.
O Web browser não executará comandos HTML, sómente scripts. Mas como ele reconhece um
script? Simples, se o Web Server encontrar na página *.ASP a tag <% ou <SCRIPT LANGUAGE=”VBScript”
RUNAT=SERVER> ele entende que daquela posição até %> ou </SCRIPT>existem comandos de scripts a
serem executados. Sendo assim, ele os executa e só retornará para o cliente o resultado HTML. É importante
observar que o Web Server só tentará interpretar uma página se a mesma estiver guardada com a extensão
.asp, caso contrário, o servidor Web enviará a página como se fosse um ficheiro de texto normal. Logo, não
adianta criar scripts altamente eficientes e esquecer de salvar correctamente o ficheiro.
Como poderá verificar a linguagem ASP é, na verdade, uma junção de programação em VBScript e
Objectos ActiveX. Um script em ASP é identificado por um delimitador <%%>. Esse pode conter várias
instruções. Se você é um bom observador e curioso, verificou que ao examinar o código fonte, a rotina ASP não
aparece, mas sómente a página formatada. Agora você pode esconder como é que são feitas as suas páginas
(sómente o código script).
VBScript é uma linguagem criada a partir do Visual Basic, mas com algumas limitações, por
motivos de segurança.
Objectos ActiveX são objectos, ou melhor, funções prontas, já existentes no servidor. Essas
funções captam os parâmetros de entrada dos dados, manipula-os de acordo a sua função e então envia-os
para a saída. Um exemplo de ActiveX é o Objecto ASPMail, o qual capta os dados de entrada (nome, email,
corpo da mensagem, etc), cria um email com esses dados e depois envia o email.
Uma vez que a linguagem ASP é usada apenas em alguns "pedaços" de páginas HTML, existe um símbolo
para diferenciar o que é programação HTML e o que é programação ASP: <% código asp %>
Exemplo nº 2 – ola.asp
<html>
<head><title>Como funciona o ASP?</title></head>
<body bgcolor="#FFFFFF">
<p>Olá Mundo!!!</p>
<%
response.write "<p>Olá Mundo!!!</p>"
%>
<p><%="Olá Mundo!!!"%></p>
</body></html>
O código acima exibe a frase Olá Mundo!!! de três modos diferentes. O primeiro, usando apenas código HTML
puro, o segundo, usando apenas comandos ASP, e o terceiro, é uma mistura de código HTML com ASP. Como
se percebe, não é necessário construir a página inteira com códigos ASP. É possível criar páginas onde há a
mistura das duas linguagens. A única exigência é que, a partir do momento em que o código da página tenha
pelo menos uma linha na linguagem ASP, a extensão do nome da página deve ser .asp. Sómente assim o
servidor poderá distinguir quais páginas que devem ser executadas antes de enviar ao Browser. Abaixo segue
a simbologia e as convenções de uso da linguagem ASP.
<% - início do código ASP
%> - final do código ASP
' (plicas) - usadas antes de comentários dentro do código
A linguagem ASP tem uma estrutura muito bem elaborada, uma vez que ela pode ser implementada com os
chamados Objectos. A linguagem ASP, além de trazer todo o poder do VBScript para a página HTML, traz
ainda o poder dos Componentes ActiveX e dos Objectos. Os componentes ActiveX, simplificando bastante, são
bibliotecas que contêm vários objectos reunidos. Principalmente objectos que necessitam de instâncias para
funcionar, o que significa que, por exemplo, cada acesso a uma Base de dados deve ocupar uma instância
daquele objecto. Esses Objectos são add-ons que dão a capacidade de captura e transmissão de variáveis
entre as páginas, de criação e manipulação de cookies, sessions e publicidade rotativa nos sites, a capacidade
de captura de informações sobre o Browser do visitante e sobre o servidor, de consulta, alteração e adição de
dados em Base de Dados, de envio de emails via página WEB, e uma infinidade de outras funções. Esses
objectos podem ser criados por outras empresas, implementando assim o poder da linguagem ASP.
Uma aplicação ASP é por definição, um conjunto de ficheiros ASP contido num directório de um servidor Web,
apresentado aos utilizadores sob a forma de directório virtual com permissão de execução.
A definição acima deixa uma dúvida ainda. O que une os ficheiros .ASP do directório virtual do servidor ?
Na verdade, não existe um ficheiro de projecto como no Visual Basic, mas sim um ficheiro (não obrigatório)
chamado GLOBAL.ASA. Se este ficheiro existir, então ele será executado antes de qualquer ficheiro ASP.
O Ficheiro global.asa tem o seguinte formato:
Dentro de um ficheiro GLOBAL.ASA, podemos capturar eventos de início e fim da sessão e aplicação, e ainda,
podemos inicializar objectos e variáveis comuns aos ficheiros ASP.
É importante também destacar, que sómente poderá existir um ficheiro GLOBAL.ASA para cada
directório virtual (aplicação).
Para iniciar uma aplicação ASP, é necessário que um utilizador solicite uma página ASP através do seu
browser, então ao carregar a primeira página ASP ou o ficheiro GLOBAL.ASA a aplicação é dada como
inicializada. O fim da aplicação é feita sómente quando o servidor Web é desligado, portanto, enquanto o
servidor estiver no ar, os dados das variáveis estarão disponíveis na memória. Esse conceito é o de Aplicação
em ASP.
Numa aplicação executando localmente por um único utilizador tem as suas variáveis e objectos totalmente
dedicados às suas tarefas. Mas no caso das aplicações ASP, isso nunca acontecerá, pelo contrário, poderão
aceder à mesma aplicação vários utilizadores simultaneamente.
Num ficheiro GLOBAL.ASA, podemos colocar variáveis de nível de aplicação e inicializá-los com alguma
informação que estará disponível enquanto o servidor Web estiver no ar.
Imaginem um cenário onde dois utilizadores acedem a uma aplicação ASP. Se fosse necessário armazenar
seus nomes, jamais poderíamos usar variáveis de nível de aplicação, pois elas seriam alteradas a cada acesso.
Por exemplo:
Quando o utilizador “Fulano” acedesse à variável NomeDoUsr, seu valor seria o nome “Fulano”. Em seguida, o
utilizador “Beltrano” acede à aplicação e variável NomeDoUsr conteria o valor “Beltrano”. Se o utilizador
“Fulano” retornasse à aplicação, veria o nome “Beltrano” e não o seu nome, “Fulano”.
Para resolver esse problema, em ASP, devemos usar variáveis de nível de sessão. A cada acesso, é criada
uma Sessão onde o utilizador possui informações exclusivas, que não estarão disponíveis para outros
utilizadores que estejam usando a mesma aplicação. Uma Sessão é iniciada quando um utilizador acede a uma
aplicação ASP, e termina quando ele fecha o seu browser ou encerra a ligação.
Do mesmo modo que existem variáveis de Aplicação e Sessão, podemos ter Componentes Servidores ActiveX
dos dois níveis. A inicialização desses componentes é feita através dos eventos Application_OnStart,
Application_OnEnd, Session_OnStart e Session_OnEnd, no ficheiro GLOBAL.ASA.
Ao programar em ASP, os objectos do browser do cliente não estão disponíveis. Em contrapartida, objectos de
interacção do ambiente (Objectos Internos) estão disponíveis para o uso, e são definidos como internos porque
nós não os criamos, mas simplesmente os utilizamos.
Não deve ser feita nenhuma confusão entre objectos internos do ASP (que não podem ser criados ou
destruídos) com objectos ActiveX do servidor (que são instâncias de objectos).
Request Representa os dados enviados para a página ASP por um formulário ou link do
browser do cliente;
Server Representação do servidor Web onde a página ASP está a ser executada.
Permite o acesso a algumas propriedades e a criação de instâncias de
componentes Servidores ActiveX;
Session Representa uma sessão aberta com um cliente via browser. Quando uma
sessão se fecha, todas as variáveis pertencentes a sessão encerrada são
perdidas.
Todos os objectos apresentados podem possuir propriedades, eventos, métodos e colecções.Começaremos
pelo Objecto Response, e já vimos alguns exemplos da sua utilização.
O Objecto Response
A resposta a solicitação (Request HTTP) duma página ASP, é dada pelo objecto Response. Os dados são
enviados no formato HTML, por esse motivo, não é possível o utilizador do browser ver como é o nosso código
ASP. Para o utilizador da Web, a resposta será sempre dada em HTML.
Antes duma página ASP ser enviada ao cliente o Web Server lê seu conteúdo. Se encontra TAGS HTML ou
texto, envia directamente ao cliente. Se encontra scripts, executa-os e passa o resultado HTML para o Web
Browser. Para representar essas respostas HTML, a linguagem ASP utiliza o objecto interno RESPONSE.
Com esse objecto podemos enviar simples comandos HTML ou texto, podemos redireccionar o browser para
buscar informações num outro URL, podemos bufferizar a resposta ao cliente, bem como interromper o envio
da página ASP.
O objecto Response se refere a todos os dados enviados do servidor para o cliente (utilizador - browser), ou
seja, qualquer informação enviada do servidor para o browser do utilizador se utiliza do objecto Response.
Clear
activo.
Esse método pode ser utilizado para enviar o conteúdo do Buffer
Flush para o cliente WEB.
Cria cookies ou altera seu valor. Se a propriedade Buffer for
diferente de True, essa propriedade só poderá ser chamada antes
Cookies(“nome_cookie”) = valor de qualquer comando que gere respostas HTML ao cliente.
Esta propriedade informa o tempo(minutos) em que uma página
ASP pode permanecer activa na Cache do Web Browser.
Expires = minutos Essa propriedade informa a data e a hora exacta em que a página
expira da Cache do Web Browser.
ExpiresAbsolute = #data hora# Esse método escreve um texto no ficheiro de LOG do Web Server.
AppendToLog Texto
Vamos analisar algumas funções mais importantes do objecto Response, e que podemos usar sempre:
response.write - permite enviar texto ao browser
response.redirect - Redirecciona o browser para um endereço especificado.
response.buffer - avisa o browser do utilizador que a página só deverá ser mostrada após ser totalmente
carregada. É interessante para usar com a função response.redirect.
response.cookies - grava informações no cookie do browser
response.write - envia textos ao browser. É interessante na construção de textos que misturam textos
prontos e variáveis.
sintaxe: response.write texto/variável
Exemplo 3 – response.asp
<html>
<head>
<title>response.asp</title>
</head>
<body bgcolor="#FFFF00">
<%
response.write "Olá!!! Abaixo uma rotina com o objecto response.write cujo texto varia de acordo com a
variável counter"
for counter=1 to 250
response.write counter & "->"
next
%>
</body>
</html>
Neste exemplo, utilizamos o objecto Response.write para escrever uma página Web, misturando as Tags HTML
e o texto que aparecerá na página.
response.redirect - redirecciona o browser do utilizador para a página especificada. Esta função só pode
ser usada antes do browser divulgar alguma informação no ecrã.
sintaxe: response.redirect(URL)
Exemplo nº 4 – response2.asp
<%
'A função response.redirect redireciona o browser do cliente para o endereço contido na variável
URLnova, no caso, www.disney.com
URLnova = "http://www.disney.com/"
response.redirect(URLnova)
%> <html>
<head>
<title>Redirect</title>
</head>
<body bgcolor="#FFFFFF">
Em breve sera direccionado para o Site novo da Disney
</body>
</html>
response.buffer - avisa o browser do utilizador que a página só deverá ser mostrada após ser carregada
totalmente. É interessante usar com a função response.redirect. Quando utilizamos Buffer=True, temos mais
controlo sobre o que será enviado como resposta ao cliente:
Observe o exemplo:
sintaxe: response.buffer = true/false
Exemplo nº 5 – response2.asp
<% RESPONSE.BUFFER=TRUE
DIM Inicio,Fim ‘ declaração das variáveis dum modo explícito
Inicio = "<HTML><HEAD><TITLE>Script Response.Buffer</TITLE></HEAD><BODY>"
Fim = "</BODY></HTML>"
RESPONSE.WRITE Inicio ‘chamada da variável Ínicio
RESPONSE.WRITE "Esse texto não será enviado ao Cliente!"
RESPONSE.WRITE Fim
RESPONSE.CLEAR ‘Esse método apaga todo o conteúdo do Buffer se o mesmo estiver activo.
RESPONSE.WRITE Inicio
RESPONSE.WRITE "Esse texto será enviado ao cliente!"
RESPONSE.WRITE Fim ‘chamada da variável Fim
%>
response.cookies - grava informações no cookie do browser.
<html>
<head><title>cookies</title></head>
<body>
<%
'o comando time insere o horário actual do servidor
response.cookies("kundanweb")("horariovisita") = time
%>
</body></html>
Objecto Request
O objecto Request se refere a todos os dados requisitados pelo servidor ao cliente, ou seja, qualquer
informação requisitada pelo servidor ao browser do utilizador, por isso utilizamos para a captura dos dados
passados pelos formulários HTML ao Servidor Web no ASP.
Existem três formas diferentes de fazermos essa captura, dependendo do METHOD:
GET Request.QueryString(Nome_Objecto)
POST Request.Form(Nome_Objecto)
GET OU POST Request(Nome_Objecto)
Exemplo 6 - Vamos fazer o uso deste objecto, para isso crie duas páginas ASP, cada uma com função
específica de pedir o preenchimento de dados e enviar os dados fornecidos, pelo visitante:
Crie uma nova página, com o código que pode ver embaixo e guarde com o nome : request1.asp
Crie uma nova página, com o código que pode ver embaixo e guarde com o nome : request2.asp
Neste exemplo, utilizamos uma página HTML (request1.asp) para pedir o nome e a password desejada pelo
utilizador, e os dados foram passados para outra página (request2.asp), atenção que não foram guardados em
local específico, foi só para exemplificar o Objecto Request.
Certamente, reparou no METHOD que era GET, e o método GET não é adequado para formulário que exigem
alguma informação secreta(password) pois o que foi digitado no mesmo é mostrado na barra de endereço do
Browser, e então os mesmos dados apareceram na barra de endereço do Browser, como pode ver mais abaixo:
http://kundan/curso/Request2.asp?user=Kundan&senha=darmeg
E, isso não é o método mais adequado para envio de dados, sendo assim, procure adaptar o exemplo anterior
METHOD=POST – na páginaao método POST, para isso altere só o método, de
METHOD=GET para
request1.asp, mas não basta só isso - na página request2.asp altere onde diz:
Utilizador = <%=Request("user")%>Utilizador = <%=Request.QueryString(“user”)%> para
e guarde as alterações efectuadas na página, experimente outra vez o formulário, e veja o resultado:
http://kundan/curso/Request2.asp
Mudando o Method de GET para POST, os dados não aparecem na barra de endereço do Browser.
Exemplo 7
Crie uma nova página, com o código que pode ver em baixo e guarde com o nome : Request3.asp
Objecto Server
O objecto Server permite o acesso e a configuração de algumas funções e métodos diretamente ligados ao
servidor.
Representa o Servidor Web, permitindo acesso a algumas de suas propriedades. Além disso, ele possibilita a
instanciação em páginas ASP de componentes ActiveX escritos por outros programadores.
Os objectos ActiveX fazem parte da tecnologia COM para criação de componentes de software reutilizáveis. A
ideia é desenvolver objectos com esse padrão para que possam ser reutilizados por “qualquer” linguagem de
programação.
Em particular, o ASP pode trabalhar com componentes COM, só que os mesmos não podem possuir interface
visual. Sendo assim, em páginas ASP usamos os chamados ActiveX DLL’s, componentes que não fornecem
nenhuma interface com o utilizador, sómente com aplicações(métodos, propriedades).
Esses componentes estendem bastante nosso poder de programação. Entre muitas coisas, eles
nos permitem:
Aceder à Base de Dados
Criar/Ler/Alterar ficheiros
Enviar e-mail
Por: Kundan Narendra15 de um total de 792005
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
Propriedade que determina o tempo máximo(segundos) que um script ASP pode ficar em
ScriptTimeOut execução, antes que o Servidor Web o termine. Isso serve para proibir que scripts ASP
fiquem executando “indefinidatamente”.
Método que codifica uma string para o formato HTML.
HTMLEncode
Método que retorna o PATH real de um determinado directório virtual do servidor Web.
MapPath
Esse método transforma uma string para o formato padrão de URL.
URLEncode
Cria uma instância de um componente ActiveX na página ASP:
A sua Sintaxe é seguinte:
CreateObject Set Obj = Server.CreateObject(“IDObjecto”)
Exemplos:
server.ScriptTimeOut - Configura o tempo máximo para execução e carregamento da página. O tempo por
defeito é de 90 segundos.
Exemplo 8
<html><head><title>A Testar ScriptTimeOut</title></head>
<body>
<%
response.write(server.scriptTimeOut & "<BR>")
'vai escrever o tempo por defeito que é 90 segundos
Server.ScriptTimeOut = 120
response.write(server.ScriptTimeOut & "<br>")
'vai escrever o tempo definido anteriormente por nós que é de 120 segundos
%>
</body></html>
server.HTMLEncode - usa-se para codificar textos que contenham caracteres especiais, tais como > ou <.
Codificado, o Browser saberá que o caractere faz parte do texto, e então, esse caractere não será interpretado
com código. É usado também para para codificar caracteres de outros idiomas, de forma que o Browser
identifique o idioma, e então exponha os símbolos correctos na página. Vamos ver um exemplo:
sintaxe: server.HTMLEncode("string")
<br>
<%
'Exemplo HTMLEncode
response.write(server.HTMLEncode("<<<Olá Mundo>>>"))
response.write "<br>"
response.write(server.HTMLEncode("WELCOME TO MÜNCHEN"))
'os caracteres <, >, e Ü são caracteres especiais.
'O comando HTMLEncode assegura que esses códigos serão interpretados de forma correcta pelo Browser.
%>
Após escrever o código, guarde as alterações e experimente correr a página.
server.URLEncode - URLs (Uniform Resource Locators) são usados para requisitar ficheiros e informações em
servidores WEB. Muitas vezes, os URL’s não contêm apenas o nome do ficheiro, mas também carregam com
eles valores de variáveis no formato QueryString. O comando server.URLEncode transforma strings de texto em
strings no formato QueryString.
sintaxe: request.URLEncode("string")
<br>
<%
'Exemplo URLEncode
response.write(server.URLEncode("test.asp?name= Kundan Narendra&idade=18 anos"))
response.write "<br>"
response.write("test.asp?" & server.URLEncode("name= Kundan narendra&idade=18 anos"))
%>
server.MapPath - retorna o path físico do ficheiro a partir do path virtual.No caso de ficheiros que não
tenham homônimos no mesmo domínio, a função server.MapPath é capaz de localizar o ficheiro no domínio e
retornar o path físico.
<br>
<%
'Exemplo server.MapPath
response.write(server.mappath("/server1.asp"))
'a linha acima retorna o path virtual do ficheiro server1.asp no servidor.
'C:\Inetpub\wwwroot\server1.asp
response.write "<br>"
response.write(server.MapPath("server1.asp"))
'a linha acima retorna o mesmo path físico, apesar de não conter o path virtual,
'e sim, apenas o nome do ficheiro. Tal retorno só é possível se não existirem dois
' ficheiros com o mesmo nome dentro do mesmo domínio.
'No caso, c:\Cenforcal\1CursoASP\server1.asp
%>
Mais á frente, iremos fazer exercícios concretos do objecto Server.CreateObject (página 37) - É usado para
gerar instâncias de componentes para uso nos Scripts. Por padrão, cada objecto criado a partir do componente
é automáticamente destruído ao acabar o processamento da página.
Objecto Application
Ao conjunto de páginas ASP do mesmo directório virtual damos o nome de Aplicação ASP. Tal aplicação será
iniciada na primeira vez que um utilizador tentar aceder a uma página desse directório virtual. Será finalizada
quando o servidor web for desligado.
Esse objecto permite- nos manipular dados relativos a toda aplicação ASP. Esses dados podem ser
compartilhados em diversas sessões por vários utilizadores, através de variáveis e objectos de nível de
aplicação.
O objecto Application tem a duração e o scope da aplicação ASP, ou seja, enquanto o servidor Web estiver no
ar, o objecto estará activo desde o primeiro acesso a aplicação.
Não possuindo propriedades, esse objecto é capaz de armazenar qualquer tipo de variável no seu interior
(encapsular). Exemplo:
Sintaxe:
Application(“<NomeDaVariável”) = <Valor>
Como o conteúdo desse tipo de variável pode ser modificado por qualquer utilizador ligado à aplicação, poderia
haver alguma confusão se vários utilizadores tentassem alterar esse valor ao mesmo tempo. Para evitar
possíveis problemas com a “concorrência", o objecto application disponibiliza dois métodos: LOCK e UNLOCK.
O primeiro bloqueia as variáveis de nível de aplicação para o utilizador que invoca tal método. Se qualquer
outro “utilizador” tentar aceder a variáveis desse nível, ficará esperando até que a aplicação seja desbloqueada.
A aplicação só será desbloqueada quando o script que a bloqueou termina a sua execução, ou quando ocorre o
“TimeOut”, ou mesmo quando o script invoca o método UNLOCK.
Ainda relacionado a esse objecto existem dois eventos:
Um evento é uma subrotina chamada automáticamente quando o sistema sofre alguma acção
especifica. Tais subrotinas não são escritas directamente nas páginas ASP mas num ficheiro à parte nomeado
de GLOBAL.ASA –o qual já foi apresentado anteriormente.
Sendo assim, quando um directório virtual for acedido pela primeira vez, o Servidor Web procura em tal
directório a existência desse ficheiro. Se encontra, abre o ficheiro e procura a subrotina Application_OnStart
para executar os seus comandos. A mesma coisa acontece quando desligamos o servidor web, só que ele
chama a subrotina Application_OnEnd.
No exemplo a seguir criamos uma variável de nível de aplicação chamada DataHoraI para armazenar a
Data/Hora em que a aplicação foi iniciada. Outra variável chamada Titulo para armazenar o titulo da aplicação
ASP. E uma variável chamada Correio que armazena o e-mail do Web Master:
Sub Application_OnStart()
Application(“DataHora”)=Now
Application(“Titulo”)=”Curso de ASP”
Application(“mail”)=”mailto:[email protected]”
End Sub
</SCRIPT>
Observe que o trabalho de manutenção do site pode ficar facilitado. Imagine que todas as páginas ASP’s do
seu directório virtual possuem um padrão de cores, links, cabeçalho, etc. Sendo assim, as páginas teriam muito
código em comum. Se desejarmos modificar os padrões do nosso site, teríamos que fazer alterações em todos
os ficheiros do directório virtual. Mas se utilizarmos variáveis de nível de aplicação para armazenar essas
configurações, não necessitamos mudar todos os ficheiros do directório, mas apenas o ficheiro GLOBAL.ASA.
Sub Application_OnStart()
Application(“DataHora”)=Now
Application(“Titulo”)=”Curso de ASP”
Application(“mail”)=”mailto:[email protected]”
Application(“CorFundo”)=”Black”
Application(“CorTexto”)=”Yellow”
Application(“TamFonte”)=”4”
End Sub
</SCRIPT>
Objecto Session
Toda vez que um utilizador Web se liga a uma aplicação ASP é iniciada uma sessão para o mesmo no servidor
Web. Para representar tal sessão, o ASP possui um objecto interno chamado Session.
Na verdade, este objecto é muito semelhante com o objecto Application. A diferença esta em dizer que esse
objecto pode armazenar valores ligados apenas a um único visitante do site(o dono da sessão). Com ele
podemos criar variáveis de qualquer subtipo cujo valor pode ser acedido ou modificado sómente pelo “dono” da
sessão.
Para criar uma variável do nível de sessão, devemos escrever comandos com seguinte sintaxe:
Session(“NOME_DA_VARIAVEL”) = VALOR_DA_VARIAVEL
As variáveis de sessão permanecerão na memória(activas) até a sessão ser encerrada. Isso pode acontecer
quando o utilizador fechar o web browser, ou quando ocorre o “TIMEOUT” da sessão, ou quando o script
invoca o método ABANDON do objecto Session.
As sessões criadas por aplicações ASP, são mantidas por elementos conhecidos por Cookies.
A propriedade TIMEOUT é usada quando o utilizador fica parado sem fazer nada no Browser. O default é vinte
minutos, mas esse valor pode ser modificado da seguinte forma:
Session.Timeout = VALOR_MINUTOS
A exemplo dos eventos do objecto Application, eles também devem ser escritos como subrotinas no ficheiro
GLOBAL.ASA.
O exemplo ilustra o conceito de sessão. Temos uma variável a nível de aplicação chamada contador. Ela serve
para informar a quantidade de pessoas que acederam à aplicação ASP. A idéia é incrementar o valor dessa
variável toda vez que uma sessão é iniciada. Também utilizamos uma variável de sessão que informa a hora
em que a sessão em questão foi aberta.
Sub Application_OnStart()
Application(“DataHora”)=Now
Application(“Titulo”)=”Curso de ASP”
Application(“mail”)=”mailto:[email protected]”
Application(“CorFundo”)=”Black”
Application(“CorTexto”)=”Yellow”
Application(“TamFonte”)=”4”
Application(“Contador”)=0
End Sub
Sub Session_OnStart()
Application("Contador")=Application("Contador")+1
Session(“HoraS”)=Time
End Sub
</SCRIPT>
Desde <%=Application(“DataHora”)%>
<HR>
<A HREF=”sessao2.asp”>Encerrar Sessão</A>
</BODY>
</HTML>
Exemplo 10.2 : Crie o ficheiro sessao2.asp –para permitir ao utilzador terminar a sessão
Estes eram os Objectos internos do ASP, e que permitem-nos utilizá-los para melhorar, e até automatizar
algumas tarefas, como deu para ver com alguns exemplos concretos.
Falamos, em variáveis em alguns exemplos que criamos até agora.... o que é uma variável ????
VARIÁVEIS
São identificadores alfanuméricos que “apontam” para posições de memória onde existem valores
armazenados temporáriamente, podendo estes ser alterados durante o processamento de uma aplicação. Não
nos interessa saber como esse valor será armazenado na memória, nem onde. Basta apenas sabermos o nome
e o tipo do valor armazenado em tal variável.
Nas ASP, as variáveis são também, como no Visual Basic, dinâmicas, não sendo por isso necessária a sua
inicialização. Seja como for, é 'má' programação usar variáveis globais sem controlo sobre as mesmas. Deve-se
usar, mas não em excesso, assim como se devem sempre inicializar as mesmas, não só para melhor controlo,
mas também para melhor performance.
Em VBScript os nomes de variáveis devem começar obrigatoriamente com uma letra e não podem exceder 255
caracteres. Ao contrário da maioria das linguagens de programação, uma variável do VBScript não necessita
ser declarada antes de ser utilizada.
Dim Nome_da_Variavel
V1=<%=v1%><BR>
V2=<%=v2%><BR>
V3=<%=v3%>
</BODY></HTML>
Simples, não é ????
A mesma variável não pode ser declarada mais de uma vez no mesmo Scope do script: O
código a seguir está errado :
Exemplo 11.1:
<% @ LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE>Curso ASP</TITLE></HEAD>
<BODY>
<% Dim v1
v1 = 100
v2 = 200
Dim v1 ‘Redeclaração da Variável v1
v1 = 900
v3 = 300 %>
V1=<%=v1%><BR>
V2=<%=v2%><BR>
V3=<%=v3%>
</BODY></HTML>
Obs: O “tempo de vida” de uma variável vai desde sua declaração explícita(Dim) ou implícita(sem o Dim) até o
final do script ou sub-rotina.
Talvez não seja fácil perceber isso com exemplos tão simples mas scripts com declarações implícitas de
variáveis são mais difíceis de ser entendidos, além de estarmos mais vulneráveis a erros de digitação. Observe
o seguinte exemplo e tire suas conclusões.
Exemplo 11.2:
<% @ LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE>ASP</TITLE></HEAD>
<BODY>
<% teste = “Centro de Formação Profissional Cenforcal” %>
Nome do Utilizador = <%=tste%>
</BODY></HTML>
Para evitar esse tipo de erro, podemos utilizar a declaração Option Explicit. Ela informa ao interpretador do
script que variáveis só poderão ser utilizadas se antes forem declaradas explicitamente.
Guarde o ficheiro com o nome de var2.asp, e execute-o no Browser, e repare que agora a execução do script
retornará um erro, uma vez que a variável tste (erro de digitação) não foi explicitamente declarada.
O comando Option Explicit obriga ao programador declarar as variáveis explicitamente, e se no decorrer do
programa aparece uma variável que não foi declarada, o programa dá erro ao ser executado no Browser.
Tipos de Dados
O VBScript contém apenas um tipo de variável, denominado Variant. O tipo variant pode armazenar qualquer
tipo de dado, e de acordo com o tipo de dados que é armazenado, é possível classifica-lo de acordo com os
subtipos de dados, abaixo relacionados:
Subtipo Descrição
Variável que contém 0 para valores numéricos e "" (string vazia) para
Empty strings.
Variável que não contém dado algum.
Null Contém True ou False
Boolean Números inteiros entre 0 e 255
Byte Números inteiros no intervalo de -32,768 a 32,767.
Integer Números inteiros no intervalo de -2,147,483,648 a 2,147,483,647.
Long Números com ponto flutuante de precisão simples na faixa de -
3.402823E38 a -1.401298E-45 para números negativos e 1.401298E-45 a
3.402823E38 para números positivos.
Números com ponto flutuante de dupla precisão na faixa de -
Single 1.79769313486232E308 a -4.94065645841247E-324 para números
negativos e 4.94065645841247E-324 a 1.79769313486232E308 para
números positivos.
Dados no formato de Data (data e tempo) na faixa de 1 de janeiro de 100 a
Double 31 de dezembro de 9999. (January 1, 100 a December 31, 9999).
Contém dados no formato de string, que podem ter até aproximadamente 2
bilhões de caracteres de tamanho.
Date
(Time)
String
Obs: é possível a conversão de dados de um tipo para outro, mas para isso, os dados devem ser compatíveis
com o subtipo desejado, ou seja, a String "23/5/03" pode ser convertida para o subtipo Date, e vice-versa. Mas
a String "ASP" não pode.
É importante a conversão de tipos de dados uma vez que o modo como os dados serão manipulados
dependem do seu subtipo. Vamos ver alguns comandos para Converter Dados
Para verificar e converter Tipos de Dados, a linguagem VBScript contém algumas funções de verificação e
conversão de tipos de dados importantes para a melhor manipulação dos dados.
As funções de verificação são importantes na hora de detectar se os dados contidos numa variável são
compatíveis com o subtipo para o qual se deseja converter estes dados.
As funções de conversão fazem a conversão de dados de um subtipo para outro, mas para isso, é necessário
que esses dados sejam compatíveis com o subtipo que se deseja obter.
Funções de Verificação
Funções de Conversão
CBool - CByte - CDate - CDbl - CInt - CLng - CStr - CSng
Exemplo de CInt - converte a expressão dada num tipo Exemplo de IsDate - retorna True caso o valor da
de dado do subtipo Integer. A diferença para o subtipovariável possa ser convertido em data, caso contrário,
Byte é a faixa de abrangência.retorna False.
<% <%
asp = "23" asp= "23/5/03"
asp2 = 34.67 asp2= "CURSOASP"
response.write Cint(asp) 'retorna 23 response.write IsDate(asp) 'retorna true
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
Dim Nome_Array(Quantidade)
Para aceder a um determinado valor duma variável array, informamos o nome e a posição de tal
valor. Esse índice começa em 0(zero) e vai até o valor especificado na declaração(Quantidade).
MeuArray(3)=Now
%>
Posição 1 = <%=MeuArray(0)%><BR>
Posição 2 = <%=MeuArray(1)%><BR>
Posição 3 = <%=MeuArray(2)%><BR>
Posição 4 = <%=MeuArray(3)%>
</BODY>
</HTML>
Observe que o valor armazenado em cada elemento de um array pode ser de um subtipo diferente dos demais.
Outra observação importante: arrays têm que ser declarados explicitamente.
CONSTANTES
Uma constante representa um valor fixo através de um identificador alfanumérico. A diferença para variáveis é
que o valor uma vez definido, não pode ser modificado. Para definir uma função em VBScript utiliza-se a
declaração Const:
Const Nome_Constante = Valor_Constante
Exemplo 13 : Crie um ficheiro com o seguinte código e guarde-o com o nome constante.asp
OPERADORES
De nada adiantaria termos valores armazenados em nossas variáveis de memória, se não pudéssemos fazer
cálculos, comparações ou qualquer outra operação com elas. Em VBScript temos um conjunto de símbolos
alfanuméricos para efectuar tais operações:
Operador Descrição
= Atribuição / Igual
<> Diferente
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
+ Soma numérica/ Concatenação de Strings
- Subtracção ou negativo Numérico
* Multiplicação
/ Divisão
\ Efectua a divisão entre dois números e retorna um número inteiro
Mod Retorna o Resto de uma divisão entre inteiros
^ Exponenciação
& Concatenação de Strings
Is Comparação de Igualdade entre dois Objectos
Pelo exposto, não é difícil perceber que as variáveis serão manipuladas de acordo com os seus subtipos. Os
valores envolvidos numa mesma operação devem ser do mesmo subtipo ou de subtipos compatíveis.
Funções no ASP
Um dos aspectos mais positivo nas ASP, são as suas funções, e a facilidade com que se pode
trabalhar com as mesmas. Existem funções que facilitam muito a vida a quem faz a
programação de vários sites, permitindo uma actualização fácil.
FUNÇÃO DESCRIÇÂO
IsDate() Devolve True ou False sobre se uma variavel é uma data valida ou não
17-Byte ; 8192-Array
<BR>
Eu gostaria de Ganhar <%=FormatCurrency(50000)%> por mês ! <BR>
Hoje eu ganho <%=FormatNumber(35/3)%> por dia....
</BODY>
</HTML>
São estruturas embutidas numa linguagem de programação que nos permite executar determinado conjunto de
comandos de acordo com uma determinada condição.
If <Condição> Then
Instruções
End if
Esse comando testa a Condição, se mesma for verdadeira, o bloco de instruções entre If e End If
será executado. A expressão IF, é aqui usada para que em conjunto com o operador de comparação , fizessem
uma comparação, e se a condição fosse verdadeira o programa continua, senão termina.
Exemplo 16 : if1.asp
<% @ Language = VBScript%>
<HTML><HEAD><TITLE>If....End If</TITLE></HEAD>
<BODY>
<% if WeekDay(Date)=1 then %>
Hoje é Domingo
<% end if %>
<% if WeekDay(Date)<>1 then %>
Hoje não é Domingo
<% end if %>
</BODY></HTML>
O exemplo anterior apesar de estar sintáticamente e correctamente escrito, poderia ser escrito de uma forma
mais eficiente. Para tal, devemos utilizar o comando If associado a Else:
If <Condição> Then
Comandos_1
Else
Comandos_2
End if
Quando o interpretador encontra esse comando testa a condição, se for verdadeira, executa o bloco de
Comandos_1. Se a condição for falsa(0), o interpretador salta para Else e executa o bloco de comandos_2, e
este tipo de programação permite, um melhor aproveitamento do Processador, e sua consequente economia.
Então, utilizando o IF...ELSE.... o programa teria a seguinte estrutura:
<BODY>
<% if WeekDay(Date)=1 then %>
Hoje é Domingo
<% else %>
Hoje não é Domingo
<% end if %>
</BODY></HTML>
Experimente correr o programa e verificará, que o resultado é idêntico ao anterior.
Podemos também ter vários If..Then...Else aninhados, em que cada cláusula Else estará ligada ao If .. Then
imediatamente anterior.
No exemplo anterior temos um End IF para cada If .. then .. Else. Isso dificulta bastante a leitura do código por
parte do programador. Para melhorar a nossa vida, o VBScript possui uma estrutura derivada da anterior: o If
Then ElseIf. A diferença dessa estrutura para a anterior é que agora só precisamos de um endif ao final de
todos os comandos. Sintaxe:
If <Condição> Then
Comandos_1
ElseIF <Condição>
Comandos_2
Else
Comando_3
End if
Este tipo de expressões dá muito jeito aos programadores para criar programas complexos, mas quando
existem várias opções em cadeia, eu sugiro que se use a existe uma estrutura alternativa ao If..Then..Else,
mais flexível e mais elegante, o :
Select Case; fica melhor organizado, e as confusões dentro do código são bastante menores.
Sintaxe:
Exemplo 17 : Crie um ficheiro com o seguinte código e guarde-o com o nome select.asp
<html><head><title>Select Case</title>
<body>
<%
cumprimento = hour(now)
Select Case cumprimento
case 0,1,2,3,4,5,6,7,8,9,10,11,12
response.write "Bom Dia"
case 13,14,15,16,17,18,19
response.write "Boa Tarde"
case 20,21,22,23,24
response.write "Boa Noite"
Case else
response.write "Este relógio está maluco"
End Select
%>
</body>
</html>
Trabalho 1: Agora escreva o código do exemplo anterior, utilizando a estrutura IF – e mostre-o ao formador.
Vamos ver mais um exemplo, que poderá ser útil para algumas páginas onde temos de mostrar o dia da
semana.
<% @LANGUAGE=VBSCRIPT%>
<HTML>
<HEAD><TITLE>Select Case</TITLE></HEAD>
<BODY>
Pergunta: Qual foi a Função que foi utilizada, nesta estrutura ???
Resposta: Foi utilizada a função ___________________
Trabalho 2: Agora escreva o código para que além do dia mostre a Hora Actual – e mostre-o ao formador.
É possível repetir um bloco de instruções dentro de um programa escrito em VBScript. Para isso existem sete
tipos diferentes de estruturas de repetição, denominadas de loop:
Do Until <Condição>
Executa um bloco de instruções até que a Condição se
instruções
torne verdadeira
Loop
Só difere da estrutura anterior pois a condição só éDo
testada no final. Sendo assim, as instruções do loopinstruções
serão executadas pelo menos uma vez.Loop Until <Condição>
Do While <Condição>
Executa um bloco de comandos enquanto a condição
instruções
for verdadeira
Loop
Só difere da estrutura anterior pois a condição só éDo
testada no final. Sendo assim, as instruções do loopinstruções
serão executadas pelo menos uma vez.Loop While <Condição>
While <Condição>
instruçõesMesma coisa que Do While ... Loop
Wend
For Variável=limiteI to limiteF Step NA Variável será iniciada com o valor limiteI. A cada
instruçõesexecução do loop ela é incrementada em N. Quando
Nextseu valor ultrapassar de limiteF, o loop se encerra.
Por: Kundan Narendra 33 de um total de 79 2005
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
For Each Elemento In Colecção Parecido com a estrutura anterior, só que aqui o bloco
instruções de instruções é executado para cada elemento
Next existente numa matriz ou numa colecção de objectos.
Vamos ver alguns exemplos da utilização de loops, tem de ter em atenção não criar Loops infinitos.
Exemplo 18 : loop.asp
<% @LANGUAGE=VBSCRIPT%>
<HTML>
<HEAD><TITLE>Loops</TITLE></HEAD>
<BODY>
<% Dim Nomes(4), nome
Nomes(0)=”Sporting”
Nomes(1)=”Beleneses”
Nomes(2)=”Atlético”
Nomes(3)=”Benfica”
Nomes(4)=”Boavista”
For each nome in Nomes %>
<%=nome%><BR>
<% Next%>
</BODY></HTML>
O comando Do...Loop executa uma determinada rotina até que a condição se torne verdadeira, para
interromper o Loop, usa-se o comando Exit Do
Exemplo 18.2 –loop2.asp
<html><body>
<%
For i=1 to 50
response.write i
next
%></body></html>
O comando For...Next executa uma determinada rotina até que o contador (uma variável) atinja o valor
determinado, observe que não é necessário nenhuma rotina de incrementação de valores em i. A cada ciclo, o
valor de i é acrescido de uma unidade, automáticamente.
Para encerrar qualquer Loop (Ciclo de repetição), usamos o comando EXIT. Ele permite que se saia
permanentemente de um loop, de uma função ou de um Sub. A tabela seguinte apresenta o seu formato para
cada situação:
Procedures (Subrotinas)
Algumas vezes, em programação, uma mesma sequência de códigos precisa ser usado constantemente. Em
vez de copiá-los sempre que forem precisos, pode-se usar as Procedures. Procedures são caixas pretas, onde
pode entrar com alguns dados, a caixa preta processa, e no caso das Functions, retorna outros valores, de
acordo com um algorítimo. O VBScript possui dois tipos de Procedures: Sub e Function.
Um Sub é um conjunto de comandos associados a um identificador alfanumérico.
Uma Function possui a mesma definição só que além de executar os comandos a ela associados, pode gerar
um valor como resultado.
Essas subrotinas podem ainda receber algum(s) valor(s) como parâmetro. Veja a seguir suas respectivas
sintaxes:
Sub NomeDoProcedimento([Parâmetro(s)])
Comando(s)
End Sub
Function NomeDaFunção([Parâmetro(s)])
Comando(s)
End Function
Dentro da Function devemos implementar um mecanismo para passar o valor calculado para fora da function.
Basta atribuir tal valor ao identificador da Function.
Na verdade, o identificador da Function é uma expressão pois retorna um valor. Para verificarmos o valor
retornado por uma Function, colocamos a mesma no lado direito de uma atribuição:
response.write soma(2,3)
%></body></html>
Esse exemplo serve para ilustrar as vantagens de se trabalhar com subrotinas : o programa fica mais
estruturado e dependendo do número de comandos de uma subrotina, existe uma economia de linhas de
código.
Já uma Sub simplesmente executa uma acção, não retornando valor algum.
<html><body>
<%
Sub visualizar_nome(nome)
response.write "O nome do site é: " & nome
End Sub
'acima, a procedure do tipo Sub foi denominada visualizar_nome
response.write "Qual é o site para Webdesigners que oferece Tutoriais, Ferramentas e Recursos aos seus
visitantes?"
Call visualizar_nome("KUNDAN.WEB")
response.write "<div><a href=www.kundan.web.pt>Home</a></div>"
'acima, o comando Call faz a chamada à Sub visualizar_nome. Como pode-se perceber, uma Sub não retorna
nenhum valor, mas sim executa uma acção.
%>
</body></html>
Os ficheiros de inclusão são ficheiros de scripts ASP (com a extensão .asp ou .inc) que são incluídos nas
páginas de um site com o objectivo de facilitar a manutenção, modularizar o código e facilitar a compreensão do
mesmo.
Para que possa entender melhor, suponha que você está a desenvolver um site e que o mesmo já tem 100
páginas. Existem elementos comuns a várias páginas como : barra de navegação (botões com as
hiperligações), logotipos, endereço de e-mail, banners, etc.... Agora imagine que o seu site utilize um script para
realizar um cálculo com um taxa fixa e que pode variar com o decorrer do tempo.
E se necessitar de alterar alguns desses elementos ? Vai ter que fazer essas alterações em todas as páginas
onde eles estiverem contidos... Imagine o trabalho que vai dar !!!
No entanto se utilizar ficheiros de inclusão vai ter que alterar apenas o ficheiro original e pronto !!!! As
alterações são automáticamente reflectidas em todas as páginas durante a inclusão do ficheiro. Isto vale para
bibliotecas de código, funções, etc...
Existem duas maneiras de você fazer a inclusão de um ficheiro numa página ASP:
<!--#include virtual="nome_do_ficheiro"-->
isto é chamada de inclusão virtual e você deve informar o nome do ficheiro e sua localização absoluta relativa à
raiz do site da Web do ficheiro actual. A instrução para incluir o ficheiro config.asp que está no directório
contas é a seguinte:
<!--#include virtual="/contas/config.asp"-->
Os ficheiros que podem ser incluidos não se restringem a ficheiros com extensão .asp . Você pode incluir
ficheiros textos com qualquer extensão. Mas lembre-se que os ficheiros com extensão .asp possuem uma
protecção: quando alguém tenta visualizar o conteúdo de um ficheiro com extensão .asp irá ver sómente o
resultado do processamento do ficheiro.
<!--#include file="nome_do_ficheiro"-->
aqui a palavra chave file inclui ficheiros relativos ao directório onde reside o ficheiro que está sendo incluído.
Você não tem que fornecer o caminho especificado para a raiz do servidor ; pode usar um caminho relativo.
Os ficheiros de inclusão podem conter código HTML e/ou código ASP mas são processados antes de
qualquer código ASP. Vejamos a seguir um exemplo :
Vamos criar dois ficheiros de scripts asp : pagina1.asp e pagina2.asp e guardá-los no directório curso.
O ficheiro pagina2.asp será incluido no ficheiro pagina1.asp quando este for chamado no seu servidor.
Observe que temos codigo HTML e codigo ASP delimitado pelas tags <% %>. A instrução usada para incluir o
ficheiro pagina2.asp é : <!--#include file="pagina2.asp"-->
Componente FileAccess
O componente ou objecto File Access (ActiveX FileSystemObject) é um componente usado para aceder a
ficheiros de texto. Os ficheiros tipo texto, muitas vezes, são usados como base de dados de acesso sequencial
(nem sempre é vantajoso usar base de dados com acesso aleatório, como o Access, ...). Assim sendo, foi
necessário criar um componente que permitisse a leitura e gravação de dados nestes ficheiros.
Para instanciar tal objecto numa página ASP escrevemos o seguinte código:
Dim Objecto
Abaixo tem um exemplo de fácil compreensão, para demonstrar a facilidade em se gravar dados em Bloco de
Notas(portanto em formato de simples texto), e posteriormente lê-los.
Exemplo 21 – gravatexto.asp
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
caminho = Server.MapPath("teste.txt") 'especifique aqui o caminho onde ficará/está o TXT
Set GRAVAR = FSO.CreateTextFile(caminho,true)
'Foi criado o objecto e logo após busca o txt em caminho para gravar, se não achar, vai criá-lo (por causa da
‘marcação TRUE)
Agora vai criar o seguinte ficheiro, e vai certificar se ele pode ler através do ficheiro de texto criado no passo
anterior.
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
caminho = Server.Mappath("teste.txt")
Set TXT = FSO.OpenTextFile(caminho)
'cria a instância do objecto, e busca pelo TXT indicado pela variável caminho como acima
response.write txt.readALL
'após abrir o TXT, todo conteúdo do ficheiro teste.txt será enviado ao cliente, neste exemplo, retornará o texto
‘tal e qual como foi gravado acima
txt.close
%>
É possível criar páginas ASP -dinâmicas que tenham a possibilidade de actualizar informações através duma
base de dados. Para tal, devemos utilizar o componente Microsoft Data Access que já vem instalado com o IIS.
Para implementar esse acesso a uma base de dados relacional o Data Access utiliza componentes inseridos no
pacote ADO(ActiveX Data Object), uma tecnologia baseada no ODBC (Open DataBase Connectivity).
Normalmente a ligação às bases de dados pelas ASP é feito pelo ADO, que por sua vez usa uma ligação
ODBC. Esta ligação é feita sem se saber se a base de dados é MSAccess ou não. O que interessa é que a
mesma seja feita com sucesso. Vai-se criar a ligação via ODBC, mas vai ser exemplificado também uma
maneira de se ligar à Base de Dados MSAccess sem ser necessário o uso do ODBC, ligação essa mais
conhecida internacionalmente por DSNLess Connection (visto que para o uso de ODBC a ligação processa-se
com DSN=…).
ODBC
O ODBC é o meio mais conhecido para aceder a uma base de dados em ambiente Windows. Ele facilita a vida
do programador mascarando as particularidades de implementação das Bases de Dados com que os mesmos
irão trabalhar.
A ideia é que cada fabricante de base de dados crie um driver ODBC. Sendo assim, quando um programa tenta
aceder a um determinado tipo de base de dados via ODBC o Windows procura um drive apropriado para este,
verifica como deve proceder e então efectua as operações requisitadas.
Antes de colocar a mão na massa e desenvolver páginas ASP com acesso a uma base de dados devemos:
Esse último passo permite que aplicações que acedam à Base de Dados via ODBC precisem
apenas saber o nome dessa origem de dados, dispensando-se as preocupações com a localização exacta e o
tipo de base de dados a aceder.
Para criar uma origem de dados devemos executar o programa ODBC do Painel de Controlo do
Windows, clicando neste Icone - Erro! Não é possível criar objectos a partir de códigos de campo de edição., e
a seguir aparecerá a seguinte janela:
Geralmente para uma aplicação Web é criada uma Origem de dados no separador System DSN.
Clicando no botão ADD (adicionar) temos:
Aqui devemos escolher o driver ODBC a ser utilizado para aceder à nossa Base de Dados. Para o nosso
exemplo usaremos o Microsoft Access, no passo a seguir –numa janela que vai abrir- defina um nome para a
ligação e a localização física da base de dados. Mas, mais à frente vamos criar um Driver ODBC para nos
ligarmos a uma Base de dados do Access.
Base de dados
Criar uma Base de dados para a internet. Criar um site não é uma tarefa fácil, temos que nos preocupar o com
o design, a estruturação dos textos, o tratamento das imagens, os recursos e limitações de servidores, etc.
Mas sem dúvida nenhuma, a parte que merece mais atenção é quando temos que usar uma Base de dados no
site. O acesso a uma Base de dados é um dos recursos mais utilizados nas páginas ASP, a facilidade com que
se pode criar um site dinâmico fica claro neste neste exercício que aborda os conceitos básicos sobre ligação a
uma Base de dados.
O motivo é muito simples, a Base de dados sempre foi alvo de constantes problemas no funcionamento de
sistemas desktop's e principalmente para a Internet. Sem contar que envolve segurança e interfere
directamente na velocidade do site.
Todos estes factores poderiam desanimar qualquer pessoa na hora de decidir ou não usar uma Base de dados
no site, mas isto não é mais uma questão de decisão, é uma questão de necessidade. Hoje em dia, um site tem
que ter aparência bonita, mas principalmente, tem que ser dinâmico e precisa existir interactividade com o
utilizador. Esta interactividade só é possível com o uso de Base de dados.
Introdução ao ADO
As páginas ASP com acesso a dados permitem interagir com a informação de uma base de dados seja para
obter informação e mostrá-la ao utilizador ou para actualizar seu conteúdo.
São muitas as aplicações deste conceito nos sistemas de informação actuais por exemplo, uma empresa que
vende seus artigos pela Internet deve dispor de páginas nas que se visualizem os dados de seus produtos,
Por: Kundan Narendra40 de um total de 792005
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
disponibilidade, preço, etc.. e armazenar os pedidos de seus clientes. Por tratar-se de informação em contínua
actualização e um grande número de consultas a necessidade de uma base de dados é indispensável.
Para ligar-se a uma base de dados, as páginas ASP utilizam a tecnologia ADO (ActiveX Data Objects) que
pode aceder a sistemas de administração de Base de dados compatíveis ODBC (entre os quais SQL Server,
Access, Informix ou Oracle.)
O ADO (ActiveX Data Objects) é uma tecnologia fácil de usar, apesar de extensível, para adicionar acesso à
Base de dados pelas páginas Web. Você pode usá-lo para gravar scripts compactos escalonáveis para se
ligar a fontes de dados compatíveis com OLE (Object Linking and Embedding, vinculação e incorporação de
objectos) DB (banco de dados OLE), como Bases de dados, folhas de cálculos, ficheiros de dados
seqüenciais ou directórios de correio electrônico. O OLE DB é uma interface de programação no nível do
sistema que fornece um conjunto padrão de interfaces COM para a exposição da funcionalidade do sistema
de gestão de Base de dados. Com o modelo de objecto do ADO, é simples aceder a essas interfaces
(usando linguagens de script, como VBScript ou JScript) para adicionar funcionalidade de Base de dados a
aplicações da Web. Além disso, também pode usar o ADO para aceder a Bases de dados compatíveis com
Open Database Connectivity (ODBC, conectividade aberta de Base de dados).
Para utilizar uma base de dados em páginas ASP devemos instanciar os objectos do ADO:
Connection : representa uma ligação activa com uma base de dados ODBC. Esse é o
componente mais importante do ADO, sendo que os demais só poderão ser criados a partir
dele.
Command : representa um comando a ser executado pela fonte de dados ODBC. Com ele
podemos criar comandos SQL compilados no servidor (preparados).
Recordset: representa um conjunto de registos resultantes do processamento de um comando
SQL em um objecto Connection. É esse objecto que permite a navegação numa tabela ou
consulta à base de dados.
Fileds : Representa os campos de um RecordSet.
Nunca se esqueça de que o primeiro objecto que deve ser instanciado é o Connection e que pode ser feito de
seguinte modo:
Onde :
FonteODBC : é o nome da fonte OBDC ou uma string de conexão com o Banco
Utilizador : é o nome do Utilizador da Base de Dados(opcional)
password : é a password desse Utilizador (opcional)
Exemplo:
nomedaConnection.Open “gestao”
Se for um criador de scripts com conhecimentos básicos sobre ligação de Bases de dados, achará a sintaxe de
comandos do ADO simples e fácil de usar. Se for um programador experiente, desfrutará o acesso escalonável
de alto desempenho que o ADO propicia a várias fontes de dados.
A primeira etapa na criação de uma aplicação de dados para a Web é fornecer ao ADO uma maneira de
localizar e identificar a sua fonte de dados. Isso é realizado através de uma sequência de caracteres de ligação,
vários argumentos delimitados por ponto-e-vírgula que definem parâmetros, como o Driver e a localização da
fonte de dados.
A tabela abaixo lista as sequências de caracteres de ligação com base de dados OLE para várias fontes de
dados comuns:
Microsoft®
Access Provider=Microsoft.Jet.OLEDB.4.0;Data Source=caminho físico do ficheiro .mdb
Microsoft SQL
Server Provider=SQLOLEDB.1;Data Source=caminho da base de dados no servidor
Para permitir a compatibilidade com as versões anteriores, o Driver de base de dados OLE para ODBC
oferece suporte à sintaxe da sequência de caracteres de ligação ODBC. A tabela a seguir lista as
sequências de caracteres de ligação ODBC usadas com mais frequência:
Microsoft
Access Driver={Driver do Microsoft Access (*.mdb)};DBQ=caminho físico do ficheiro .mdb
Tipo de Ligação
Podem utilizar-se dois sistemas de ligação às bases de dados:
Com DSN
Este sistema consiste em definir um identificador da ligação mediante o driver ODBC acessível no Painel de
Controlo (já abordamos esta parte anteriormente). Posteriormente, já nas páginas ASP, faz-se o acesso
mediante uma string de ligação que inclui o identificador anteriormente citado.
Já vimos como podemos criar um DSN no Windows, por isso vamos avançar.
Sem DSN
Este sistema requer que seja colocado o ficheiro da base de dados (habitualmente Access) num directório do
servidor. Desta forma, na ligação será utilizada uma string um pouco mais complexa já que devem identificar-se
tanto o driver como o directório físico completo de base de dados.
O ADO fornece o objecto Connection para o estabelecimento e o gestão de ligações entre os aplicações e
fontes de dados compatíveis com base de dados OLE ou base de dados compatíveis com ODBC. O objecto
Connection apresenta propriedades e métodos que você pode utilizar para abrir e fechar ligações de base
de dados e emitir consultas para actualizar informações.
Para estabelecer uma ligação à base de dados, primeiro crie uma instância do objecto Connection. Pode ver no
exemplo a seguir o script que cria uma instância do objecto Connection, instruções de ligação a uma base de
dados :
<%
<font size="2"> Dim objConn
' Fornecer ao objecto a informação correspondente à ligação ODBC a utilizar mediante DNS
objConn.ConnectionString = "DSN=bdProgramacao"
No exercício –sobre a Base de dados, vamos ver como criar uma Base de dados para ser usada na Internet, e
numa página ASP.
Para acompanhar este exercício, vai ter de instalar um servidor PWS (em príncipio está instalado) ou IIS5 no
seu PC.
Primeiro crie uma Base de dados no MS-ACCESS 97 ou 2000 com a seguinte estrutura:
09 - Clique em Save
10 - Digite o nome da Tabela a guardar: Clientes
11 - Caso ele solicite uma chave primária, responda: Não
12 - Feche a Tabela e o Access
No exercício anterior vimos como criar um Base de dados no MS-Access, agora vamos ver como usar este
Base de dados com ASP e ADO.
Para facilitar a compreensão, vamos fazer um formulário em HTML para podermos preencher alguns registos
novos na nossa Base de dados.
Este formulário pode ser criado usando o Front Page, Dreamwever ou outro programa Editor de HTML que você
tenha. Abaixo pode ver o código do nosso formulário.
<html>
<head>
<title>Formulário para Registo de Clientes</title>
</head>
<body>
<form method="POST" action="registo.asp">
<table border="0" width="100%">
<tr>
<td width="50%" align="right"><font face="Verdana" size="2">Código do
cliente: </font></td>
<td width="50%"><font face="Verdana" size="2"><input type="text" name="Codigo_cliente"
size="36"></font></td>
</tr>
<tr>
<td width="50%" align="right"><font face="Verdana" size="2">Nome do
cliente: </font></td>
<td width="50%"><font face="Verdana" size="2"><input type="text" name="Nome_cliente"
size="36"></font></td>
</tr>
<tr>
<td width="50%" align="right"><font face="Verdana" size="2">Telefone: </font></td>
<td width="50%"><font face="Verdana" size="2"><input type="text" name="Telefone" size="36"></font></td>
</tr>
<tr>
<td width="50%" align="right"><font face="Verdana" size="2">Data de
Registo: </font></td>
<td width="50%"><font face="Verdana" size="2"><input type="text" name="Data" size="36">
formato: dd/mm/aa</font></td>
</tr>
<tr>
<td width="50%" align="right"><font face="Verdana" size="2">Obs:</font></td>
<td width="50%"><font face="Verdana" size="2"><textarea rows="3" name="Obs"
cols="29"></textarea></font></td>
</tr>
<tr>
<td width="50%"></td>
<td width="50%"><font face="Verdana" size="2"><input type="submit" value="Registar" name="registar"><input
type="reset" value="Limpar" name="limpar"></font></td>
</tr>
</table>
</form>
</body>
</html>
Poderá observar que neste formulário a linha que faz uma chamada a outro ficheiro, o registo.asp:
<form method="POST" action=" registo.asp">
Isto quer dizer que os dados digitados no formulário serão enviados para o ficheiro registo.asp, que por sua vez
vai processar, conjuntamente com o Servidor Web a página e a respectiva execução dos dados.
Vamos criar agora o ficheiro registo.asp, o código estará todo comentado para uma maior compreensão:
Session.LCID = 2070
'Vamos criar uma função para inverter a data, já que no Access a data é gravada no formato americano
Function DataInvertida(data)
dia=day(Data)
mes=month(Data)
ano=year(Data)
DataInvertida=mes&"/"&dia&"/"&ano
End Function
' Agora vou usar o comando Request.form para recuperar os valores digitados no formulario.htm
' Observe que na recuperação da data, uso a função criada acima
Codigo = Request.Form("Codigo_cliente")
Nome = Request.Form("Nome_cliente")
Telefone = Request.Form("Telefone")
Data = Datainvertida(Request.Form("Data"))
Obs = Request.Form("Obs")
ligacao.Execute "insert into Clientes(Codigo_cliente, Nome, Telefone, Data_registo, Obs) values('" & Codigo &
"','" & Nome & "','" & Telefone & "',#" & Data & "#,'" & Obs & "')"
' Para libertar memória no servidor é necessário destruir os objectos criados acima.
ligacao.Close
Set ligacao = Nothing
%>
Vamos agora criar o ficheiro consulta.asp - Para visualizar os dados inseridos acima é necessário criar o
ficheiro consulta.asp.
Nota: Suponha que temos uma tabela de produtos com as seguintes colunas: nome, preço e distribuidor.Na
página ASP a ser criada aparecerão aqueles produtos cujo preço seja inferior à 30 Euros e para realizar esta
consulta utilizaremos o objecto ADODB.Recordset .
Para recuperar dados, examinar resultados e fazer alterações numa base de dados, o ADO fornece o objecto
Recordset. Como o próprio nome indica, o objecto Recordset tem recursos que você pode usar, dependendo
das suas restrições de consulta, para recuperar e exibir um conjunto de linhas da base de dados ou registos. O
objecto Recordset mantém a posição de cada registo retornado por uma consulta, permitindo que você percorra
os resultados, um item de cada vez.
<%
' Abaixo um código HTML que será usado para criar uma tabela onde os dados serão exibidos
%>
<table border="0" width="100%">
<tr>
<td width="20%" bgcolor="#999966" align="center"><font size="2" face="Verdana">Cód_Cliente</font></td>
<td width="20%" bgcolor="#999966" align="center"><font size="2" face="Verdana">Nome</font></td>
<td width="20%" bgcolor="#999966" align="center"><font size="2" face="Verdana">Telefone</font></td>
<td width="20%" bgcolor="#999966" align="center"><font size="2" face="Verdana">Data</font></td>
</tr>
</table>
<%
'
do while not Rs_max.eof
%>
<table border="0" width="100%">
<tr>
<td width="25%"><font size="2" face="Verdana"><%=rs_max("Codigo_cliente")%></font></td>
<td width="25%"><font size="2" face="Verdana"><%=rs_max("Nome")%></font></td>
<td width="25%"><font size="2" face="Verdana"><%=rs_max("Telefone")%></font></td>
Para aceder a este ficheiro digite o seguinte endereço no seu Browser web: http://localhost/curso/consulta.asp
Objecto Recordset
Tabela.ActiveConnection = “nomeDSN”
Por fim, abrimos o recordset utilizando o método Open e informando o comando SQL:
Mas a forma mais fácil de se instanciar um Recorset é pela utilização do método Execute do Connection:
Tabela.Update
Delete Elimina um registo de um Recordset consequentemente, de uma tabela da Base
de Dados.
Para exibir os valores dos campos de todos os registos de um Recordset usamos a colecção de objectos Fields:
A linguagem SQL
O uso de comando SQL é fundamental quando se trabalha com Base de dados num site. A instrução SQL não
é usada apenas em sites .ASP, diversas linguagens agregam o poder do SQL para acesso a dados.
Porém para aceder a uma Base de dados é necessário ter noções sobre SQL. E as Bases de dados que fazem
o uso de SQL são: Access, SQL Server, Oracle, MySql e outros.
Para o nosso exemplo vamos usar ASP e uma base de dados em Access. O comando Select é usado para
seleccionar dados em uma tabela dentro do critério que você definir.
Considere que você tenha uma tabela chamada 'Clientes' com os seguintes campos:
Cod_cliente
Nome
Data_nascimento
Limite_credito
Antes de começar a mostrar os exemplos vamos entender alguns operadores e cláusulas que iremos usar:
= - igual
<> - diferente
* - todos
where – onde
between – entre
group by – agrupar
Select * from Clientes where Data_nascimento between '01/01/1989' and '31/12/1985' order by Nome
Selecciona todos os campos (*) da tabela (Clientes), onde a data de nascimento esteja entre 01/01/1989 e
31/12/1985 (between '01/01/1989' and '31/12/1985') ordenando por Nome
Obs: neste exemplo a data vem entre apóstrofo.
Considere que você tenha uma tabela chamada 'Clientes' com os seguintes campos:
Cod_cliente
Nome
Data_nascimento
Limite_credito
Antes de começar a mostrar os exemplos vamos entender alguns operadores e cláusulas que iremos usar:
= - igual
<> - diferente
* - todos
where - onde
Abaixo vamos ver as diversas formas de usar estes três comandos SQL.
Comando Insert
insert into Clientes(Cod_cliente, Nome, Data_nascimento, Limite_credito) values(2,'João da
silva','25/07/02',1500)
Neste exemplo o comando insert irá gravar o valor 2 no campo Cód_cliente, o texto João da silva no campo
Nome, a data 25/07/02 no campo data_nascimento e o valor 1500 no campo Limite_credito. Todos os campos
estão na Tabela Clientes
Comando Update
UPDATE Clientes SET Nome='Luis Ribeiro', Data_nascimento=08/01/71, Limite_credito=2500 WHERE
Cod_cliente = 2
Este exemplo o comando Update irá actualizar o campo Nome para "Luis Ribeiro", o Campo Data_nascimento
para 08/01/71 e o campo Limite_credito para 2500. Para que o comando Update saiba qual registo ele deverá
actualizar é necessário informar a cláusula WHERE Cod_cliente = 2
Comando Delete
DELETE * FROM Clientes where Cod_cliente=2
Fazendo uma pequena revisão daquilo que fizemos no exercício 22, podemos dizer de que:
Como resultado do código acima, o servidor obtém um conjunto de registos procedentes da base de dados e
posiciona o cursor no primeiro deles. O objecto recordset proporciona mecanismos para aceder aos diferentes
campos e mover o cursor entre os diferentes registos. O código abaixo mostra como fazê-lo.
Encerrar as ligações
É uma prática recomendável fechar e eliminar os objectos recordset e de ligação criados na página ASP. Para
isto utilizamos o código indicado a continuação:
As operações de incluir, actualizar e eliminar informação duma base de dados também se realizam mediante
instruções SQL concretamente utilizamos INSERT, UPDATE e DELETE respectivamente.
Por exemplo, a sentença UPDATE é composta da claúsula SET para indicar o novo valor dos campos e
WHERE para indicar os registos nos que se deseja realizar a actualização.
adovbs.inc
ADOVBS.INC é um ficheiro que vem com o servidor Internet Information Server (IIS) e no qual se definem todas
as constantes utilizadas com os objectos do ADO.
A inclusão de ficheiros é muito útil para podermos ter um código legível e reutilizável que são duas
características imprescindíveis em páginas de acesso a dados. Para isto utilizamos a instrução include virtual
(que já conhecemos) que pertence ao grupo de instruções do protocolo HTTP e cuja sintaxe é a seguinte:
Tentei tornar este Manual de ASP, mais prático – não esquecendo a parte teórica que sempre elucida- nos em
relação a coisas importantes, mas também nos permite esclarecer muitas dúvidas, numa altura em que
estamos a criar páginas ASP.
Espero que tenham entendido o que é ASP, porque é que utilizamos essa tecnologia para criar aplicações Web,
qual a linguagem de scripts que podemos utilizar para criar páginas ASP, quais os objectos mais importantes,
as funções que podemos utilizar, e até mesmo como podemos criar as nossas próprias funções.
A Internet está cheia de Lições, Artigos, Exercícios passo-a-passo, se porventura resolver optar por esta
tecnologia, poderá pesquisar á procura de esclarecimentos e tópicos mais avançados, porque este manual
abordou, as coisas mais importantes até ao nível médio, permitindo a qualquer um de vós criar Páginas ASP, a
brincar.
A partir de agora vamos avançar para a criação de alguns exemplos, tais como:
Criação de um BackOffice em ASP –em que vamos criar um pequeno Site de notícias com a parte
da gestão de notícias, e a visualização das mesmas por parte dos visitantes do Site.
Criação de um livro de visitas –Guestbook para que o visitante possa deixar a sua mensagem.
Criação de um Site de e-Commerce –Comércio electrónico para venda de produtos.
Criação do Site do Centro de Formação Profissional –ao nível de divulgação de Cursos, Datas,
Inscrições on-line, Historial, Contactos, Cursos realizados,e a página da Introdução.
Após a construção destes três exemplos, qualquer um de vós estará apto a trabalhar com o ASP, e criar Sites
dinâmicos e interactivos com o visitante.
Mais abaixo tem a resolução de alguns trabalhos pedidos no decorrer deste manual.
Resolução do Trabalho 1:
<HEAD><TITLE>Select Case</TITLE></HEAD>
<%
cumprimento = hour(now)
If cumprimento < 19 then
response.write "Bom Dia"
Else
response.write "Boa Noite"
End if
'o comando IF...then...Else comparou o valor da variavel cumprimento com um determinado valor estipulado (no
caso, 19). Se o valor for menor que 19, então escreve na página "Bom Dia". Caso contrário (Else), "Boa Noite"
%></body></html>
Podia escrever a estrutura IF, Then, ElseIf, Else para apresentar as horas e os cumprimentos desejados.
Resolução do Trabalho 2:
<% @LANGUAGE=VBSCRIPT%>
<HTML>
<HEAD><TITLE>Select Case</TITLE></HEAD>
<BODY>
Funcionamento de um ficheiro
Utilizador
ASP
Funcionamento do ASP mais simplificado.
Exercícios Práticos
Vamos agora passar à parte prática, na criação de Páginas ASP, começando com exemplos simples e muito
práticos. Aumentaremos o grau de dificuldade, à medida que estivermos mais familiarizados, com esta
Linguagem:
Exercício 1
<HTML>
<BODY>
Esta página foi actualizada em <%= Now() %>.
</BODY>
</HTML>
Conclusão
Exercício 2
<%
Dim dtmHora
dtmHora = Hour(Now())
Por: Kundan Narendra 55 de um total de 79 2005
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
Conclusão
Exercício 3
<% For fontsize = 1 to 7 %>
<FONT SIZE=<% =fontsize %>>
Server-side script!<BR>
</FONT>
<% Next %>
<HTML>
<HEAD>
<TITLE>Server-Side Scripting</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
Conclusão
Exercício 4
<%
'Definir duas variáveis com valores em cadeias.
strNomeProprio = "Kundan"
strApelido = "Narendra"
%>
<P>Esta página Web está personalizada para "<%= strNomeProprio %> <%= strApelido %>." </P>
Conclusão
Exercício 5
<%
Dim dtmHora, strNomeServidor, strSoftwareServidor, intSaudar
dtmHora = Time()
strNomeServidor = Request.ServerVariables("SERVER_NAME")
strSoftwareServidor = Request.ServerVariables("SERVER_SOFTWARE")
<SCRIPT LANGUAGE="JScript">
<!--
//Chamar função para apresentar a saudação mostrarMsgIntro()
function mostrarMsgIntro()
{
switch(<%= intSaudar %>)
{
case 0:
msg = "Este é o servidor de Web <%= strNomeServidor%> a executar o <%= strSoftwareServidor
%>."
break
case 1:
msg = "Bem vindo ao servidor Web <%= strNomeServidor %>. A hora local é <%= dtmHora %>."
break
case 2:
msg = "Este servidor está a executar o <%= strSoftwareServidor %>."
break
}
document.write(msg)
}
-->
</SCRIPT>
Conclusão
Exercício 6
<%
Dim arrFavoriteLinks(9,1)
arrFavoriteLinks(0,0) = "http://www.microsoft.com"
Por: Kundan Narendra57 de um total de 79 2005
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL
D EL E G A Ç ÃO R E G I O N A L D E L I S B O A E V A L E D O T E J O
CENTRO DE FORMAÇÃO PROFISSIONAL DE LISBOA PARA O SECTOR TERCIÁRIO
Exercício 7
<html>
<head>
<title>Exemplo da utilização de um ficheiro de funções</title>
<!--Inclusão do ficheiro que tem a função FormataData-->
<!--#INCLUDE FILE="FUNCOES.inc"-->
</head>
<body>
<p><b>Exemplo da utilização de um ficheiro de funções</b></p>
<p>Este exemplo utiliza a função <b>FormataData</b> que se encontra num ficheiro separado
(<em>funcoes.inc</em>), e que é incluido nesta página ASP. Esta função formata a data, surgindo o dia
da semana e o mês, em português.</p>
<%
response.write "<p>Hoje é <b>" & FormataData(date()) & "</b></p>"
response.write "<p>A hora do servidor <em>web</em> é " & time() & "</p>"
%>
</body>
</html>
Ficheiro FUNCOES.inc
<%
function FormataData(DataK)
dim strMes
dim strDia
FormataData=strDia & ", " & day(DataK) & " de " & strMes & ", " & year(DataK)
end function
%>
Conclusão
Além destes exercícios, vamos criar aplicações práticas, e testá-las, corrigir erros, e finalizar o
trabalho.
Um BackOffice é uma área protegida dentro do seu site. Um bom exemplo é um sistema de notícias, onde
existe uma página pública para apresentar as notícias e uma área reservada para a introdução das mesmas na
base de dados, por parte de pessoas autorizadas.
Seguidamente mostramos-lhe como pode implementar este exemplo, utilizando um sistema simples de notícias
para a página principal.
Exemplo de BackOffice
Para criar este BackOffice necessita de uma base de dados SQL Server ou MSAccess onde será colocada
a tabela dos utilizadores com acesso ao BackOffice e a tabela das notícias. Crie a sua base de dados em
Access e guarde-a com o nome de “news.mdb”, pode prosseguir de acordo com os passos seguintes:
1. Crie uma tabela com o nome "users" e os campos indicados na tabela seguinte:
Este sistema será constituído por 5 páginas mais o ficheiro "global.asa" do IIS ou PWS.
1. Para inserir na tabela "users" os utilizadores com acesso ao BackOffice, poderá utilizar as paginas
"form.asp" e "create.asp", alterando o código respectivo.
2. Página global.asa
A página "global.asa" é um ficheiro opcional do IIS, onde podem ser especificados eventos ou objectos,
com alcance dentro do âmbito de uma sessão ou aplicação.
Se ainda não criou este ficheiro, deverá criá-lo agora e colocá-lo na raiz da sua aplicação. Insira de
seguida, o seguinte código:
2. Sub session_OnStart
3. Session.Timeout = 10
4. Session("Logon")=false
5. Session("userid")=""
6. end sub
7. Sub session_OnEnd
8. Session("Logon")=false
9. Session("userid")=""
11. </script>
Este código cria as variáveis para cada sessão, onde serão arquivados o user_id e a
indicação de logon deste (logon=true/false) .
Guarde-o com o nome global.asa, na pasta backoffice, que vai criar logo de seguida, para
guardar todos os restantes ficheiros que vai criar na continuação deste exercício.
Esta página, constrói a "form" (formulário) de login onde é pedido ao utilizador o seu username e
password para entrar no BackOffice (área reservada). Escreva o seguinte código:
1. <html>
2. <head>
3. <%
4. Session("Logon")=false
5. Session("userid")=""
6. %>
7. </head>
8. <body>
9. <center>
11. <tr>
13. Username</small></font></td>
17. </tr>
18. <tr>
20. Password</small></font></td>
23. </tr>
24. </table>
26. <tr>
30. </tr>
31. </table>
32. </form>
33. </center>
34. </body>
35. </html>
Guarde esta página com o nome de login.asp, na pasta backoffice, que criou no passo anterior.
4. Esta página não será vista pelo utilizador, servindo apenas para validar os dados de login inseridos pelo
mesmo. Se estes dados estiverem correctos, o utilizador é reencaminhado para a página de introdução
de notícias do BackOffice.
1. <%
3. Session("Logon")=false
4. response.redirect("terminate.asp")
5. else
6. dim StrSql
8. set Conn=server.createobject("adodb.connection")
9. MdbFilePath = Server.MapPath("news.mdb")
10. Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
set rs = Conn.Execute(StrSql)
12. '################################
14. '################################
15. Session("Logon")=false
16. response.redirect("terminate.asp")
17. else
19. '################################
21. '################################
22. Session("Logon")=true
24. conn.close
25. response.redirect("Bomain.asp")
26. else
27. '################################
29. '################################
30. conn.close
31. response.redirect("terminate.asp")
32. end if
33. end if
34. end if
35. %>
Guarde esta página com o nome de passwd.asp, na pasta backoffice, que criou no passo
anterior.
Esta página também não será vista pelo utilizador, servindo apenas para garantir que a
sessão é bem encerrada e as variáveis bem inicializadas.
1. <%
2. Session("Logon")=false
3. Session("userid")=""
4. response.redirect("login.asp")
5. %>
Guarde esta página com o nome de terminate.asp, na pasta backoffice, que criou no
passo anterior.
1. <%
2. '##########################
4. '##########################
5. response.expires-1
7. response.redirect("terminate.asp")
8. end if
9. %>
10. <html>
11. <body>
13. <tr>
17. '###############################
21. Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
set rs = Conn.Execute(StrSql)
25. else
27. <b><%=rs("data")%></b></br>
28. <I><%=rs("assunto")%></I></br>
29. <%=rs("noticia")%></br>
30. <hr></hr>
31. <%rs.movenext
32. loop
34. </td>
38. '###############################%>
44. </form>
45. </td>
46. </tr>
47. </table>
49. </body>
50. </html>
Da linha 1 à 9 são verificadas as variáveis de sessão. Se o user_id estiver vazio ou a variável "logon"
tiver o valor "false" (não existe um utilizador "logado"), não é permitida a entrada no BackOffice.
Guarde esta página com o nome de bomain.asp, na pasta backoffice, que criou no passo anterior.
1. <%
2. response.expires=-1
6. set conn=server.createobject("adodb.connection")
7. MdbFilePath = Server.MapPath("news.mdb")
8. Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
9. set rs=Conn.execute(StrSql)
10. response.redirect("bomain.asp")
11. %>
Atenção: não foram incluídas quaisquer validações dos dados introduzidos pelo operador, visto já ter
sido dado um exemplo no código acima.
Guarde esta página com o nome de newsCreate.asp, na pasta backoffice, que criou no passo anterior.
Este pequeno exercício foi útil para perceber o que é realmente o “BackOffice” dum site desta natureza, será
então a área reservada, para os utilizadores autorizados, que poderão entrar mediante uma autenticação, e
colocar lá os seus artigos.
Podíamos logo de seguida criar, uma página onde aparecessem as notícias escritas pelos colunistas, e para
isso temos de escrever o seguinte código:
Depois de termos o Backoffice criado, vamos criar condições para ter um site de notícias, onde listamos todas
as notícias, e também exibimos uma a uma, com todos os detalhes.
Para listar as últimas notícias inseridas na nossa base de dados –news.mdb, podemos utilizar o código ASP
descrito, e comentado, abaixo:
<%@LANGUAGE="VBSCRIPT"%>
<%
' Primeiramente, devemos indicar ao servidor, onde está localizada a nossa base
' de dados, contendo as notícias listadas.
set conn=server.createobject("adodb.connection")
MdbFilePath = Server.MapPath("news.mdb")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";" "
Guardeesteficheirocomo:default.asp,napastabackofficecriadaanteriormente.
Na próxima parte, veremos como exibir os detalhes de cada notícia, utilizando o componente
Request.QueryString.
Após termos listado as últimas notícias listadas na nossa Base de Dados, devemos criar uma página *.asp
onde, exibimos o conteúdo completo da notícia.
MdbFilePath = Server.MapPath("news.mdb")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";" "
' Seleccionamos apenas a notícia onde a ID for igual ao parâmetro passado pela URL
exibe_noticia.Source = "SELECT * FROM noticias where id="& id &""
exibe_noticia.CursorType = 0
exibe_noticia.CursorLocation = 2
exibe_noticia.LockType = 3
exibe_noticia.Open()
exibe_noticia_numRows = 0
%>
<html>
<head>
<title> Site de Noticias- detalhadas</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><b><%=exibe_noticia("assunto")%></b><br>
</p>
<p>
<%
noticia=exibe_noticia("noticia")
noticia=replace(noticia, chr(10), "<br>")
response.write noticia
%>
<p><b>Data:</b> <%=exibe_noticia("data")%></p>
<a href=”default.asp”>Voltar</a>
</body>
</html>
<%
' Fecha a ligação
exibe_noticia.Close
Set exibe_noticia = Nothing
%>
Podemos considerar este exercício como o mais completo Sistema de Notícias com Backend (área reservada
para os colunistas) e Frontend (área das notícias recentes e detalhadas vísivel aos visitantes). Espero que
tenham tirado as devidas ilações deste exemplo, porque a linguagem ASP permite-nos criar sistemas mais
completos e complexos do que este, é necessário é que continue a dedicar o tempo para o estudo do ASP, ou
ASP.NET (a nova versão do ASP) e que permite-nos criar aplicações para a WEB mais profissionais.
Os programas de Gestão de conteúdos (como este que acabamos de construir), os exemplares mais nobres
desta geração, adoptados por vários sites, chegam a custar, em licença, 400 mil dólares. Últimamente, como a
situação da Internet não anda exactamente de vento em popa, vimos neste pequeno exemplo como criar uma
opção muito mais modesta e radicalmente mais económica de software de administração de conteúdo,
utilizando ferramentas já conhecidas pela grande maioria dos programadores ASP.
São elas: Microsoft Access, para a Base de Dados, e um editor HTML/texto qualquer (como o Frontpage 2000),
podendo-se adoptar o Bloco de Notas, do Windows.
Que todos os exemplos que fizermos ao longo deste Curso, sirvam de algum modo para vos indicar o caminho
do sucesso, apesar da Internet já estar inundada, de pessoas que fazem através da criação deste tipo de
aplicações, o seu ganha pão, mas isso não é caso para desmoralizar, porque você com estes conhecimentos
adquiridos, e com a arte de programar duma maneira diferente, pode ganhar o seu espaço.
Vamos começar a usar ASP e acesso a uma Base de dados com ADO. Vamos ver como implementar uma
funcionalidade usada em muitas páginas web: o Livro de visitas ou Guestbook.
A coisa funciona da seguinte maneira: Ao visitar um site que disponibiliza um livro de visitantes, podemos
assinar o livro , deixar nosso e-mail e colocar alguma mensagem característica. Vamos mostrar como criar as
rotinas para implementar um livro de visitas num site.
Básicamente vamos precisar de uma base de dados na qual iremos armazenar os registos inseridos pelos
visitantes. Vamos armazenar os seguintes dados:
IDO código de identificação do assinante
1- ) Usando um Driver OLE DB (iremos usar esta forma de acesso a base de dados). Neste método usamos o
seguinte código:
2-) A segunda forma é usar um driver ODBC ( existem servidores que não suportam Drivers OLE DB ). Neste
caso o código é o seguinte:
3-) Podemos usar ainda um DSN ( Data Source Name) para aceder aos dados via objecto connection da ADO.
Como exemplo podemos criar o DSN com o nome de visitantes e usá-lo para o acesso à base de dados.
O ficheiro ajuda.htm também será usado para exibir o conteúdo da ajuda ao utilizador.
<script language="JavaScript">
function verifica_dados(form) {
var tamanho_pesquisa = new String()
tamanho_pesquisa = document.enviar.mensagem.value
if(EmBranco(form.nome) == true) {
alert("Por favor digite o seu nome.");
form.nome.focus();
return false;
}
if(EmBranco(form.email) == true) {
alert("O seu e-mail apresenta um formato inválido.");
form.email.focus();
return false;
}
if(EmBranco(form.mensagem) == true) {
alert("Deixe pelo menos uma palavra");
form.mensagem.focus();
return false;
}
} // fim da função
/************************************************
* function AvisoInvalido
* Gera um alerta para o utilizador
* volta o foco p/campo
* Input: theField - campo do formulário com problema
* warnText - texto a ser mostrado no alert
************************************************/
function AvisoInvalido (theField, warnText) {
theField.focus()
theField.select()
alert(warnText)
return false
}
</script>
<script language="JavaScript">
// funcao para obter ajuda
function ajuda(){
window.open('ajuda.htm','explica','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,
_ resizable=no,copyhistory=no,width=270,height=310,top=40,left=150');
}
</script>
As funções deste ficheiro fazem a validação da entrada de dados nos campos do formulário do site.
Ao aceder à página do livro de visitas iremos mostrar os utilizadores que já assinaram o livro e a seguir
mostraremos o formulário que permitirá ao utilizador informar os dados para assinar o livro.
O utilizador pode clicar no nome do visitante que já assinou o livro para lhe enviar uma mensagem, pode
também clicar sobre o ícone do livro para obter ajuda resumida de como proceder para assinar o livro.
if Request.ServerVariables("CONTENT_LENGTH")> 0 THEN
SQL = "SELECT * FROM visitantes"
rst.Open SQL,Conn,1,2
rst.AddNew
rst("nome") = Request.form("nome")
rst("email") = Request.form("email")
rst("mensagem") = Request.form("mensagem")
rst("data") = day(now) & "/" & month(now) & "/" & year(now)
rst.Update
rst.close
end if
<HTML>
<HEAD>
<TITLE>Relação dos Visitantes</TITLE>
</HEAD>
<CENTER>
<body bgcolor="#00FFFF">
<table border="0">
<tr>
<td><img src="logo_vb.gif" width="320"
height="49"><font face="Comic Sans MS"><em></em></font><font
color="#004080" face="Comic Sans MS"><em>Kundan</em></font><font
color="#FF0000" face="Comic Sans MS"><em>Web</em></font><font
color="#808040" face="Comic Sans MS"><em> / </em></font><font
height="49"><font face="Comic Sans MS"><em> </em></font><font
color="#004080" face="Comic Sans MS"><em>Base </em></font><font
color="#FF0000" face="Comic Sans MS"><em>de</em></font><font
color="#004080" face="Comic Sans MS"><em> </em></font><font
color="#808040" face="Comic Sans MS"><em>Dados</em></font><font
color="#004080" face="Comic Sans MS"><em> </em></font><font
color="#0080FF" face="Comic Sans MS"><em>na </em></font><font
color="#FF8000" face="Comic Sans MS"><em>WEB</em></font></td>
</tr>
</table>
<hr>
<p><font size="5" face="Comic Sans MS">Livro de Visitas</font>
<A href="javascript:ajuda()"><IMG border=0<img src="livro.gif" width="67" height="39"></p></A>
<table border="0" width="90%">
<tr>
<td width="100%">
<div align="center">
<center>
<table border="0" width="90%">
<%
While Not rst.EOF
%>
<tr>
<td width="100%" bgcolor="#CDCDCD">
<font face="Arial" size="2" color="green">
Assinado em</font><font color="black"><em>
<%=rst("data")%></em></font>
<font face="Verdana" color="blue">por</font>
<font color="pink"><em><a href="mailto:<%=rst("email")%>">
<%=rst("nome")%></a><br></em></font>
<div align="center"><center>
<table border="0" width="70%">
<tr>
<td width="100%"><p align="center">
<font color="black" size="2" face="Arial">
<i><%=rst("mensagem")%></i>
</font></td></tr>
</table></center></div></td></tr>
<%
rst.MoveNext
wend
rst.close
conn.close
set rst=nothing
set conn=nothing
%>
</table>
</center></div>
</td></tr>
</table>
</center>
</div>
<% 'inicializa as variáveis
nome=""
email=""
mensagem=""
homepage=""
%>
<form name="enviar" method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" _
onsubmit="return verifica_dados(this);">
<center>
<Table bgcolor="aqua" border="0">
<tr><td>
<b>Nome (*): </b>
<input type="text" size="60" name="nome" value="<%=nome%>">
</td></tr>
<tr><td>
<b>E-Mail(*): </b>
<input type="text" size="60" name="email" value="<%=email%>">
</td></tr>
<tr></tr>
<tr><td>
<b>Mensagem : <font color=blue>Obs: (*) Preenchimento obrigatório</font></b>
<textarea rows="3" name="mensagem" value="<%=mensagem%>" cols="60"></textarea>
</td></tr><tr>
<td>
<input type="submit" value="Assinar" name="B1">
<input type="reset" value="Limpar" name="B2">
</td></tr>
</table>
</form>
</center>
<hr></body>
</html>
1-) <%option explicit %> - Esta instrução obriga a que declaremos todas a variáveis usadas no
projecto. ( boa prática )
3-) A seguir criamos um objecto Connection e definimos uma string de ligação. Vamos usar a base
de dados visitas.mdb localizado no diretório onde está a página ASP. A seguir abrimos a ligação com
a base de dados.
5-) O código abaixo irá fazer a inclusão dos dados do formulário na tabela visitantes.
if Request.ServerVariables("CONTENT_LENGTH")> 0 THEN
SQL = "SELECT * FROM visitantes"
rst.Open SQL,Conn,1,2
rst.AddNew
rst("nome") = Request.form("nome")
rst("email") = Request.form("email")
rst("mensagem") = Request.form("mensagem")
rst("data") = day(now) & "/" & month(now) & "/" & year(now)
rst.Update
rst.close
end if
6-) A seguir usamos a instrução : While Not rst.EOF / Wend para percorrer a tabela e mostrar todos os
registos da Base de Dados, na página do site.
7-) O formulário para preencher os dados é montado usando o seguinte código:(Observe o uso das tags
<%=campo%> )
Após ter criado e implementado, o Livro de Visitas –tente passar uma vista de olhos sobre a explicação, sobre
cada parte de código do ficheiro visitas.asp.
O Livro de visitas é uma aplicação muito simples, e fácil de implementar, mas como certamente reparou – o uso
de uma Base de Dados é necessário.
Espero que depois de construir esta pequena aplicação, fique com mais noções sobre como funciona o ASP, e
atenção de que qualquer destes códigos, ou mesmo um ficheiro (por ex: funcoes.asp) pode ser utilizado em
outras aplicações, não necessita de criar tudo de raíz.
Que tal um contador no Site ?? Este serve para indicar o número de acessos ? É bem mais simples
do que se pensa. Vamos usar um ficheiro texto para armazenar o número de acessos e
incrementá-lo a cada requisição do utilizador á nossa página. Vamos lá...
As etapas envolvidas são as seguintes:
2-) Criamos um ficheiro texto para armazenar o valor do contador. Fazemos isso usando o nome
do ficheiro de script acrescido da extensão .cnt.
3-) A cada requisição da página pelo utilizador abrimos o ficheiro lendo o seu conteudo e
incrementando o valor de uma unidade.
<%
' Declarando as variaveis usadas
Dim objFSO, objContador' variável de acesso a ficheiros (FileSystemObject ) e objecto contador
Dim strArqTexto' nome do ficheiro texto
Dim iConta' variavel que incrementa o contador
Dim I' variavel usada no loop
' Monta o nome do ficheiro texto com extensão .cnt a partir do nome do ficheiro de script
strArqtTexto = Server.MapPath(Request.ServerVariables("SCRIPT_NAME") & ".cnt")
Podemos implementar o script acima usando a directiva include numa página ASP. A sintaxe é
dada a seguir:
<!-- #INCLUDE FILE="contador.asp" -->
Iremos aproveitar o exemplo anterior e incluir o ficheiro contador.asp usando a directiva include.
O ínicio do script já com a directiva include fica assim:
<html>
<head>
<TITLE>Teste de contador</TITLE>
</head>
<body bgcolor="#FFFFFF">
<!--#INCLUDE VIRTUAL="\ADOVBS.INC" -->
<!--#INCLUDE FILE="contador.asp" -->
<%
...
...
...
%>
<hr>
<b>Numero de Acessos a esta página : <%=iconta%></b>
</BODY>
</HTML>
<%
Set ObjectoFicheiro = CreateObject(“Scripting.fileSystemObject”)
Set LerTexto = ObjectoFicheiro.OpenTextFile
(Server.MapPath(“contador.txt”),1)
Valor = LerTexto.ReadLine
Set LerTexto = nothing
Set EscreveTexto = ObjectoFicheiro.CreateTextFile
(Server.MapPath(“contador.txt”),True)
EscreveTexto.WriteLine(valor+1)
EscreveTexto.Close
Response.Write “Houveram “ & (valor+1) & “ acessos...<br>”
%>
Dou por terminado este Módulo de Programação Web, esperando que tenha conseguido incutir, o
máximo possível de noções sobre esta matéria.
Desejo que este Módulo e Curso decorra da melhor forma, e Boa Sorte para o Futuro.
BOM TRABALHO