Digamos q isso seja a continuação de outro tópico, porém para um outro assunto parecido. Isso pode ser um futuro problema seu!
Veja, quero fazer um contador de visitas (geral) SEM usar global.asa e SEM FileSystemObject.
Ele tem de estar dentro destes termos.
- Proibir da pessoa apertar F5 e somar mais uma visita. (Solução: uso de uma Session, por exemplo: Session("verifica") = 1 'para vistado, else não visitado)
- Proibir da pessoa fechar o browser e retornar ao site e contar mais uma visita. (Solução: IP)
Agora vamos imaginar se a pessoa A está no laboratório da faculdade Z e acessando o mesmo site da pessoa B, sabendo que neste laboratório todos tem o mesmo IP, a solução pra se saber que é uma nova visita será o SessionID.
Claro que não é em todos os laboratórios que tem todo o IP igual, em muitos só muda o final dele(o q vem deposi do último ponto (200.175.125.214).
Então, baseando-se nisso tudo, fiz uma tabela com 3 campos:
session_id - Texto
ip - Texto
hora - Data/Hora
Mas dae logo meu BD vai estar enorme!!! Guardando estes dados de cada nova visita, meu deus... imagina ter mais de 5mil registros, muito grande!
Portanto queria uma solução, e o q eu keria, era sempre a cada nova visita somar mais um ao valor do campo. Mas podendo fazer este controle todo aí. Dae sim vou ter um contador de visitas (geral) correto!!!
Fiz este código a seguir, dêem uma olhada para entende-lo!
Pensei em usar o Cookies pra poder minimizar este código pra ficar apto pra uma tabela com um campo q só q é somado mais um ao valor dela.
Com cookies talvez eu conseguisse guardar todos estes campos e simplesmente fazer a verificação, dae dependendo da resposta somar mais um ao valor do campo ou não. Se alguém souber mecher cookies e quiser dar uma ajuda
Meu código abaixo!
contador.asp
<%
Option Explicit
dim session_id, agora, ip
dim rs, db, sql
dim rs2
set db = Server.CreateObject("ADODB.Connection")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/geral.mdb")
session_id = Session.SessionID
agora = Now
ip = Request.ServerVariables("REMOTE_ADDR")
sql = "SELECT * FROM contador WHERE session_id='"&session_id&"' OR ip='"&ip&"'"
set rs = db.execute(sql)
if rs.eof then
sql = "INSERT INTO contador (session_id,ip,hora) VALUES ('"&session_id&"','"&ip&"','"&agora&"')"
db.Execute(sql)
else
sql = "UPDATE contador SET hora='"&agora&"'"
db.Execute(sql)
end if
sql = "SELECT * FROM contador"
set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.open sql,db,3,3
if not rs2.eof then
%><%=rs2.RecordCount%><%
end if
db.close
set db = nothing
set rs2 = nothing
set rs = nothing
%>
Anelisem ae...
Aguardo respostas, comentários, sugestões e quem sabe, um upgrade deste código , Valeu!
Pergunta
[ GuTo ]
Fala galera!
Digamos q isso seja a continuação de outro tópico, porém para um outro assunto parecido. Isso pode ser um futuro problema seu!
Veja, quero fazer um contador de visitas (geral) SEM usar global.asa e SEM FileSystemObject.
Ele tem de estar dentro destes termos.
- Proibir da pessoa apertar F5 e somar mais uma visita. (Solução: uso de uma Session, por exemplo: Session("verifica") = 1 'para vistado, else não visitado)
- Proibir da pessoa fechar o browser e retornar ao site e contar mais uma visita. (Solução: IP)
Agora vamos imaginar se a pessoa A está no laboratório da faculdade Z e acessando o mesmo site da pessoa B, sabendo que neste laboratório todos tem o mesmo IP, a solução pra se saber que é uma nova visita será o SessionID.
Claro que não é em todos os laboratórios que tem todo o IP igual, em muitos só muda o final dele(o q vem deposi do último ponto (200.175.125.214).
Então, baseando-se nisso tudo, fiz uma tabela com 3 campos:
session_id - Texto
ip - Texto
hora - Data/Hora
Mas dae logo meu BD vai estar enorme!!! Guardando estes dados de cada nova visita, meu deus... imagina ter mais de 5mil registros, muito grande!
Portanto queria uma solução, e o q eu keria, era sempre a cada nova visita somar mais um ao valor do campo. Mas podendo fazer este controle todo aí. Dae sim vou ter um contador de visitas (geral) correto!!!
Fiz este código a seguir, dêem uma olhada para entende-lo!
Pensei em usar o Cookies pra poder minimizar este código pra ficar apto pra uma tabela com um campo q só q é somado mais um ao valor dela.
Com cookies talvez eu conseguisse guardar todos estes campos e simplesmente fazer a verificação, dae dependendo da resposta somar mais um ao valor do campo ou não. Se alguém souber mecher cookies e quiser dar uma ajuda
Meu código abaixo!
contador.asp
Anelisem ae...
Aguardo respostas, comentários, sugestões e quem sabe, um upgrade deste código , Valeu!
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.