Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

barenco

Problema com contador de acessos

Recommended Posts

Olá amigos

 

Etou usando um contador de acessos muito simples, mas funcional. Ele utiliza um arquivo de texto para armazenar os nomes das páginas a serem acessadas e as respectivas contagens. Uma página chamada contador.asp é inserida como include nas páginas a serem contadas. Código abaixo.

Até ai, tudo bem. Acontece que gostaria de inserir esse contador tanbém em páginas geradas a partir de consultas, que tem o nome terminados pelo nome do arquivo + o código da consulta no banco de dados. Por exemplo: carrosview.asp?key=4608

O problema é que o que vem depois de asp é ignorado e o contador faz uma contagem genérica. Mas as páginas de consulta possuem mais de 200 códigos diferentes. Como fazer para que seja considerado cada código individualmente?

 

<%
' 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("\old\contador\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 ""& contagem
%>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser o nome criado dinamicamente na consulta, pois no FSO ele pega apenas o nome da page carrosview.asp,

faça uma função para pegar apenas o nome da página carrosview.asp?key=4608, retirando o parametro de consulta

inserindo o include do contador, mas detalhe terá que ter uma pagina válida, ou use o ISAPI Rewrite para criar a página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.