Desenvolvimento - ASP
Contador de acessos com imagens
Mostra passo-a-passo como criar e configurar um contador de acessos em ASP, que em vez de exibir os números em texto, exibe com imagens. Com bd Access ou arquivo de texto (File System Object).
por Dimas PanteBom, primeiramente vou explicar exatamente o que faz este código: é um contador de acessos, que grava os acessos em um banco de dados Access, ou em um arquivo de texto (os dois tipos serão explicados) e exibe não um simples texto, mas imagens, como você vê nos sites que possuem o serviço de contador.
* Para você entender melhor os códigos, coloquei vários comentários. Depois é recomendável que você os exclua, pois estas simples linhas ocupam bastante espaço na sua página, quando visualizada na internet.
Para baixar os arquivos deste tutorial, clique aqui.
Com Access
Com arquivo de texto
Para criar o contador com o banco de dados em ACCESS, o jeito mais fácil é dividindo as funções. Crie uma página chamada funcoes.asp e uma chamada default.asp. Crie também uma pasta chamada dados, e dentro dela, o arquivo do Access: acessos.mdb.
No Access, crie o arquivo chamado
acessos.mdb e crie uma tabela que vai se chamar acessos. Nesta tabela,
temos dois campos:
cod (Chave primária) - Tipo: Numeração automática;
contador - Tipo: texto.
Agora, na página funcoes.asp, você vai inserir o seguinte (em vermelho, o código ASP e em cinza os comentários):
<%
"--usa as configurações do Brasil
Session.LCID = 1046
"--gera acesso no bd
Public Function Acessos()
"--primeiro conecta pra buscar o valor que já tem
Set conexao = Server.CreateObject("ADODB.Connection")
"--aqui você define a pasta onde vai estar o
banco, no meu caso, estará na pasta dados
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="&Server.MapPath("dados/acessos.mdb")
sql2 = "SELECT * FROM acessos"
Set rs = conexao.Execute(sql2)
"--aqui a variável contador recebe o valor do banco
contador = rs("contador")
"--se o contador for novo, coloca o valor 0 pra
ele
if contador = "" then
contador = 0
end if
"--agora acresce 1 ao valor que já tinha
contador = contador + 1
"--e atualiza o novo valor. Note o WHERE cod = 1 -
usamos somente um campo e uma linha
SQL = "UPDATE acessos SET contador = ""&contador&""
WHERE cod = 1"
conexao.Execute(SQL)
"--fecha as conexões e a função
conexao.close
set conexao = nothing
End Function
%>
Agora, iremos para a página default.asp. Nela, você vai chamar a página funcoes.asp, criar a conexão com o bd e a função que exibe as imagens. Coloque o código a seguir antes da tag <html>, na primeira linha da sua página:
<%@LANGUAGE="VBSCRIPT"%>
<!--#INCLUDE
FILE="funcoes.asp"-->
<%
"--chama a função
que grava o acesso
Acessos()
"--conecta ao
access
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="&Server.MapPath("dados/acessos.mdb")
"--agora
seleciona o que tiver na tabela (o asterisco significa que tudo lá vai ser
pego)
sql3 = "SELECT * FROM acessos"
Set conta = conexao.Execute(sql3)
"--a
variável Contar recebe o valor que tem no banco
Contar = conta("contador")
"--e
criamos a função PegarImg, que vai escrever o conteudo do bd como uma imagem
Function PegarImg(Contar)
"--verifica quantos
caracteres existem no campo pra dividir com a função Mid()
For numero = 1 to Len(Contar)
"--depois, escreve
os números com imagens (que você deve ter, no caso, dentro da pasta
imagens)
"--a sintaxe da função Mid() é: Mid(variável, índice, e número de caracteres
que deve pegar)
Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"
"--recomeça até
chegar ao limite do Len(Contar)
Next
"--e fecha a função
End Function
%>
Depois, para escrever o contador na página, você deve colocar o seguinte código (em qualquer lugar da página, desde que dentro do <body> e </body>):
<%=PegarImg(Contar)%>
E, no fim da página você deve inserir o código que fecha o banco de dados, para evitar overflow
<%
conexao.close
Set conexao = nothing
%>
Criar o contador com o um ARQUIVO DE TEXTO é mais ágil, mas você deve ter a classe File System Object ativada para ler e escrever no seu servidor e deve também ter permissões irrestritas na pasta onde estiverem as páginas. Crie então uma página chamada default.asp. Crie também um arquivo de texto chamado contar.txt. Abra-o e digite o número 1.
Na primeira linha da página default.asp, digite:
<%@LANGUAGE="VBSCRIPT"%>
<%
"--Deve usar a
classe File System Object
"--Aqui vai criar a conexão com a classe
Set objeto = Server.CreateObject("Scripting.FileSystemObject")
"--fica mais fácil
chamar o arquivo pelo MapPath, pra não haverem erros de localização
obj = Server.MapPath("contar.txt")
"--lugar onde está o
arquivo de texto
Set arquivo = objeto.OpenTextFile(obj)
"--agora lê o número
que tem no arquivo de texto (da primeira vez o valor é 1, como colocado
antes)
velho = CLng(arquivo.ReadLine)
"--agora pode fechar o
arquivo
arquivo.Close
"--acresce 1 ao antigo
valor e gera uma nova variável
novo = velho + 1
"--abre o arquivo pra
sobrescrever o que já tinha nele
Set arquivo = objeto.OpenTextFile(obj,2,true)
"--e agora sim
sobrescreve :)
arquivo.WriteLine(novo)
"--e novamente fecha o
arquivo
arquivo.Close
"--verifica o valor pra
usar as imagens
Contar = novo
"--e criamos a função
PegarImg, que vai escrever o conteudo do bd como uma imagem
Function PegarImg(Contar)
"--verifica quantos
caracteres existem no campo pra dividir com a função Mid()
For numero = 1 to Len(Contar)
"--depois, escreve
os números com imagens (que você deve ter, no caso, dentro da pasta
imagens)
"--a sintaxe da função Mid() é: Mid(variável, índice, e número de caracteres
que deve pegar)
Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"
"--recomeça até
chegar ao limite do Len(Contar)
Next
"--e fecha a função
End Function
%>
Depois, para escrever o contador na página, você deve colocar o seguinte código (em qualquer lugar da página, desde que dentro do <body> e </body>):
<%=PegarImg(Contar)%>
Para baixar os arquivos deste tutorial, clique aqui.