|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Contador Inteligente, Se incrementa apenas 1 vez por dia
|
 |
|
|
Postada em 9/10/2003 por ^HEAVY-METAL^
Criei este contador para que possa se ter uma ideia exata de quantas pessoas estão acessando o seu site, ele se incrementa apenas uma vez por dia pra cada usuario, ex.: se eu acessar o site que tenha esse contador ele ira se incrementar, se eu acessar denovo ele não se incrementara até que se passe 24h desde a minha ultima visita, sendo assim conta uma vez por dia pra cada usuário... Fique a vontade:
1- Crie um banco de dados clientes.mdb, crie uma subpasta na pasta em q vc esta trabalhando com o nome de DB, e salve-o lá:
Tabela de nome Contador
Campos:
id --------------------- AutoNumeração ip --------------------- Texto data ------------------ Data/Hora conta ----------------- Número
2 - Eis o fonte
<% @ LANGUAGE="VBScript" %> <% Response.Buffer = True %> <%
vInternetProtocol = Request.ServerVariables("REMOTE_ADDR") dt = date()
Set Connexao = Server.CreateObject("ADODB.Connection") BancoDados = Server.MapPath("db/clientes.mdb") Connexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & BancoDados SQLString = "SELECT * FROM Contador WHERE ip = '"&vInternetProtocol&"'" Set Rs = Connexao.Execute(SQLString)
' Verifica se esse IP já visitou o site. Se não visitou a Var Varifica recebe o valor 1 if Rs.EOF then verifica = 1 end if
While not Rs.EOF vMaior = Rs("id") Rs.MoveNext Wend
' CONDIÇÃO SE 1 - Se esse ip não visitou o site ainda, ele será cadastrado no banco de dados e o contador incrementado. if verifica = 1 then
Set Con = Server.CreateObject("ADODB.Connection") BD = Server.MapPath("db/clientes.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & BD SQL = "INSERT INTO Contador(ip, data, conta) VALUES ('"&vInternetProtocol&"', '"&date()&"', 1)" Set Rs2 = Connexao.Execute(SQL) Con.Close Set Con = Nothing
else
' CONDIÇÃO SE 2 - Se já visitou vefifica-se se a data da visita é a data atual, se for a data atual, contador não será incrementado SQLString = "SELECT * FROM Contador WHERE id="&vMaior&"" Set Rs = Connexao.Execute(SQLString) if Rs("data") = Date() then ' Se não for a data atual, contador é incrementado else
Set Con = Server.CreateObject("ADODB.Connection") BD = Server.MapPath("db/clientes.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & BD 'SQL = "INSERT INTO Contador(conta) VALUES (1)" SQL = "INSERT INTO Contador(ip, data, conta) VALUES ('"&vInternetProtocol&"', '"&date()&"', 1)" Set Rs2 = Connexao.Execute(SQL) Con.Close Set Con = Nothing
'fim se 2 end if
'fim se1 end if
Connexao.Close Set Connexao = Nothing %>
<% Set Connexao = Server.CreateObject("ADODB.Connection") BancoDados = Server.MapPath("db/clientes.mdb") Connexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & BancoDados SQLString = "SELECT Conta FROM Contador'" Set Rs = Connexao.Execute(SQLString)
While not Rs.EOF vConta = vConta + Rs("conta") Rs.MoveNExt Wend
'Response.Write vConta Connexao.Close Set Connexao = Nothing %> para chamar o contador:
<% Response.Write vConta %>
T+,
|
|
|
|

|