|
|
|
|
|
Dicas
|
|
ASP - Active Server Page (Miscelâneas)
|
|
|
Título da Dica: Contador Simples em TXT
|
|
|
|
Postada em 27/10/2003 por ^HEAVY-METAL^
Uma questão muito importante, e algumas vezes trabalhosa, é a de determinar quantas visitas recebeu cada página de um determinado site. Em geral, a solução para que as coisas realmente funcionem do modo como queremos envolve banco de dados, consultas, e muito código . Por isso, resolvi contribuir com um código que possiblite o contagem de acessos não de apenas uma, mas de todas as páginas de um site; e o que é melhor, sem banco de dados!
(Cores: ASP comentários )
arquivo : contador-facil.asp
<% ' declarando as variáveis Dim x, FSObject, letot, escrevetot, numacesso, acessos(), nomepag(), apagina
'Recupera o nome da página atual apagina = Request.ServerVariables("URL")
' Agora vamos ler o nosso arquivo que armazena as contagens e procurar o nome da página atual Set FSObject = CreateObject("Scripting.FileSystemObject")
nomearquivo=server.mappath("totais.txt")
Set letot = FSObject.OpenTextFile(nomearquivo,1,1)
' Observe que o número 1 em vermelho indica que o arquivo totais.txt será criado caso ainda não exista!
' O arquivo é lido, linha a linha, o nome da página atual é procurado, e os valores já lidos são armazenados em duas variáveis: nomepag e numacesso
'Aqui, zeramos o indexador de nossa lista x=0
'Esta variável vai nos indicar se a página já foi visitada alguma vez cabaco=0
'Fazemos um Loop até a última linha do arquivo While Not letot.AtEndOfStream
ReDim preserve nomepag(x)
' Incluímos o nome da primeira página registrado na lista nomepag nomepag(x) = letot.ReadLine
' Comparamos para saber se o nome da página já registrada é o mesmo do nome da página atual If nomepag(x) = apagina Then
ReDim preserve acessos(x)
' Se for a mesma página, adicionamos 1 ao número de visitas registradas, e incluímos o valor na lista numacesso acessos(x) = letot.ReadLine + 1
' guardamos o número total de acessos dessa página na variável contagem contagem = acessos(x)
' Aumentamos em 1 o indexador de nossa lista x = x + 1
'Aqui, como a página já foi visitada, à variável cabaco é atribuida o valor 1 cabaco=1
' Caso o nome da página atual não se encontre registrado Else
ReDim preserve acessos(x)
' Carregamos os valores em nossa lista sem nenhum acréscimo acessos(x) = letot.ReadLine
' Aumentamos em 1 o indexador de nossa lista x = x + 1
End If
' Volta ao início e parte para uma nova linha de nosso arquivo Wend
' Fechamos o objeto letot.Close
Set letot = Nothing
' Agora vamos "despejar" os valores de nossa lista em um novo arquivo totais.txt Set escrevetot = FSObject.CreateTextFile(nomearquivo)
'Zeramos o indexador de nossa lista x = 0
' Fazemos um looping por nossa lista For Each numacesso In nomepag
'Escrevemos o nome da página (nomepag) no arquivo de texto escrevetot.WriteLine nomepag(x)
' Na próxima linha vai o total de acessos dessa página escrevetot.WriteLine acessos(x)
' Aumentamos em 1 o indexador de nossa lista x = x + 1
Next
' Se a página nã foi visitada nenhuma vez... if cabaco=0 then
' Escrevemos o nome da página no final do arquivo texto contador=1
contagem=1
escrevetot.WriteLine apagina
' Na próxima linha, atribuímos 1 ao valor de visitas feitas a esta página escrevetot.WriteLine contador
end if
' Fechamos o objeto escrevetot.Close
Set escrevetot = Nothing
Set FSObject = Nothing
' Aqui, um pequeno código opcional, caso você queira exibir o número de visitas em sua página Response.Write "até o momento, a página "& apagina &" recebeu "& contagem & " visitantes" %>
Um contador simples e eficiente, uma solução perfeita para um sistema de contagem sem muito trabalho. Tudo o que você tem que fazer agora é incluir este código em todas as páginas de seu site, utilizando:
<!-- #include file="contador-facil.asp" -->
T+,
|
|
|
|
|