USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  ASP - Active Server Page    (Miscelâneas)

Título da Dica:  contador de Acessos
Postada em 17/9/2003 por larback            
A gente acha por aí vários códigos prontos de contadores de acesso, embora isso muitas vezes adiante nosso trabalho, muitas vezes ficamos sem bônus intelectual, pois simplesmente copiamos. O presente artigo mais do que dar o peixe, visa ensinar a pescar...
Código comentado:

Esses códigos são referentes a um contador de acesso à Páginas Web. Siga passo a passo e no final você verá uma breve explicação sobre a lógica dos processos realizados abaixo.



ABAIXO SEGUE A PROGRAMAÇÃO DE: contador.asp

<%

'Declara as variáveis

Dim Conn, RsQuery, Pagina, Counter

'Atribui o endereço da página atual a uma variável (Pagina)

Pagina = Request.ServerVariables("SCRIPT_NAME")

'Atribui a variável Conn uma instancia do objeto Connection

'ou seja, a variável passa a propriedade de conexão

Set Conn = Server.Createobject("ADODB.Connection")

'Abre a conexão com o banco de dados usando o Server.MapPath, que localiza o banco com esse nome

'apenas dentro do mesmo diretório

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("contador.mdb")

'Verifica se a Session Pagina ja contem algum valor, no caso o valor (visitada)

If Len(Session(Pagina)) = 0 Then

'Atribui a variável RsQuery a consulta executada no banco de dados

Set RsQuery = Conn.Execute("SELECT * FROM acesso")

'Atribui a variável Counter o valor atual de visitas

Counter = RsQuery("acesso")+1

'Atribui a variável RsQuery a atualização feita no banco de dados

'Repare que desta maneira você pode usar esse Banco de Dados para várias páginas

'porque apenas será atualizada linha que corresponde a (url = '" & Pagina & "')

'url é o endereço atual

Set RsQuery = Conn.Execute("UPDATE acesso SET acesso = " & Counter & " WHERE url = '" & Pagina & "'")

'Atribui a Session(Pagina) o valor "visitada", onde só será contado como uma nova visita quando a sessão for encerrada (a sessão se encerra após 20 minutos de página estática, ou ao fechar o browser)

Session(Pagina) = "visitada"

'Caso a Session Pagina não contenha o valor (visitada), será contado como mais uma visita

Else

'Atribui a variável RsQuery a consulta atualização feita no banco de dados

Set RsQuery = Conn.Execute("SELECT * FROM acesso WHERE url = '" & Pagina & "'")

'Atribui a variável Counter recebe o número de visitas

Counter = RsQuery("acesso")

'Fecha o conexão com o banco de dados

End If

'Fecha o conexão com o banco de dados

Conn.Close

'Caso a Session Pagina não contenha o valor (visitada), será contado como mais uma visita

Set Conn = Nothing

'É impresso o total de visitas

Response.Write Counter

%>

FIM DE: contador.asp



ABAIXO SEGUE A PROGRAMAÇÃO DE: inicial.asp

<!--

Nesta página apenas será dado o include da página contador.asp onde esta toda a programação

-->

<HTML>

<HEAD>

<TITLE>«::ASPBRASIL::»</TITLE>

</HEAD>

<BODY>

Nº de visitantes:

<!-- #INCLUDE FILE="contador.asp" -->

</BODY>

</HTML>

FIM DE: inicial.asp



ABAIXO SEGUE O COMENTÁRIO DA LÓGICA DOS PROCESSOS:

Vamos verificar o que ocorre com os processos quando um usuário visita sua página:

Ao carregar a página a Sessão Pagina recebe o valor "visitada". Com isso, quando o usuário atualizar a

página ou voltar a página inicial o contador permanecerá com o mesmo número de acesso e só passará a

contar mas um a partir do momento em que expirar a sessão do usuário ou o Browser for fechado.

No processo acima nós temos duas condições:

A 1ª é a condição em que o usuário entra pela primeira vez na sua página, com isso é aberta uma conexão

com a Base de Dados e é registrada mais uma visita e a sessão Pagina recebe o valor "visitada".

A 2ª é a condição em que o usuário já esta na página e apenas é verificado o valor da sessão, caso a sessão

contenha o valor "visitada" não é aberta e conexão com a Base de Dados e apenas é apresentado o valor de

"Counte" que é a variável que contém o número de visitas atuais, caso não contenha valor nenhum é processada primeira condição.


Deus seja louvado


 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página