Olha amigos achei esta tutoria de um script em asp para usuario online que seria muito util para nos aqui. mais preciso de uma ajuda, como não conheço muito como faze o script para roda perfeitamente gostaria de uma ajudas de vocês aguel sse habilta nesta empleitada vou colocalo como esta Usuários Online com Banco de Dados (Melhor para quem usa tem hopedagem grátis!) Ireis está iniciando a postagem de alguns artigos que acho muito útil e acho de plena importancia eu postar aqui pra meus amigos programadores web também saberem. Primeiramente irei postar um artigo de Usuários Online com Banco de Dados muito mais confiável do que o sistema utilizando Global.asa. Eu irei utilizar ASP / MySQL porém pode ser utilizado ASP / Access. Iremos primeiro criar a tabela no MySQL chamada Online com os seguintes campos: Campo - Tipo - Tamanho ----------------------------------- ID - INT - 10 HostIP - VARCHAR - 20 DataAcesso - DATETIME Pagina - TEXT Feito este campos será necessário indicar os code e as subrotinas da páginas a serem acessadas. view_online.asp strSQL = "SELECT Sum(1) As Total FROM Online"
Set Rs = Conexao.Execute(strSQL)
IF isNull(Rs("Total")) THEN
Response.Write "N/A"
ELSE
IF Rs("Total") = 1 THEN
Response.Write "1 Usuário Online"
ELSE
Response.Write Rs("Total") & " Usuários Online"
END IF
END IF
Rs.Close
Set Rs = Nothing
PS: Conexão você deve utilizar a seguinte linha para conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open
"driver={MySQL};DATABASE=nome_do_banco;SERVER=ip_servidor;UID=usuario_d
o_banco;PASSWORD=senha_do_banco"
O arquivo view_online.asp deverá ser colocado como include no local onde ira
mostrar a quantidade de´usuários online.
Agora iremos montar as duas subrotinas que irão verificar quem está online e
adicionar os offline após alguns minutos sem acesso.
Você deverá colocar este código no começo de todas as paginas ou uma include
que é chamada em todas as páginas.
Call userOffline()
Call userOnline()
Agora iremos montar a subrotina userOffline() que irá ser responsavel para verificar
se o visitante ainda está no site ou já saiu.
Sub userOffline()
' UPDATE todos os usuários do Online após 10 minutos
timeleft = DATEADD("n", -10, Now())
Call ExecuteSQL("DELETE FROM Online WHERE DataAcesso < '"&
DataMySQL(timeleft) &"';")
End Sub
Ele irá pegar todos os registros da tabela que tenha o ultimo acesso por mais de 10
minutos e ira deletar ou seja
Digamos que você acesse o site as 10 horas porem sai as 10:05 e o site não tem
como saber se você saiu ou não por isso se as 10:16 você não tiver mais visitado
nenhuma página ele ira colocar você como offline
Agora iremos montar a subrotina userOnline() que irá ser repsonsavel para atualizar
na tabela Online a data do ultimo acesso a páginas do site, pois ai o sistema irá
saber que você ainda esta navegando no site.
Sub userOnline()
QueryStrr = "?" & Request.ServerVariables("query_String")
strSQL = "Select * From Online Where HostIP = '" &
Request.servervariables("REMOTE_ADDR") & "'"
Set Rs = Conexao.Execute(strSQL)
If Rs.BOF AND Rs.EOF Then
Call ExecuteSQL("INSERT INTO
Online(HostIP,DataAcesso,Pagina) VALUES('" &
Request.servervariables("REMOTE_ADDR") & "', '" & DataMySQL(Now()) & "', '" &
Request.ServerVariables("SCRIPT_NAME") & QueryStrr & "');")
Else
Call ExecuteSQL("UPDATE Online SET DataAcesso = '" &
DataMySQL(Now()) & "',Pagina = '" & Request.ServerVariables("SCRIPT_NAME") &
QueryStrr & "' Where HostIP = '" & Request.servervariables("REMOTE_ADDR") &
"';")
End If
FechaRs(Rs)
End Sub
Na variavel QueryStrr ele ira pegar o valor da pagina com querystring ou seja muitos
programadores utilizando páginas da seguinte forma
index.asp?link=cadastro&cat=jogos e se não tiver isso a página sempre seria grava
como index.asp
Verificamos se o numero ip ( que é pode onde iremos identificar cada usuário, porém
você pode trocar por id caso seje um página de acesso restrito ) se aquele ip esta já
na tabela como online , se tiver ele irá apenas atualizar a data atual pra dizer que
está ativo no sistema, caso não tiver o ip ele ira adicionar um novo registro na tabela.
No campo pagina ele ira atualizar ou irá adicionar a página que o visitante está
online, depois você pode faezr uma pagina para mostrar quantos usuários estão
online, ou quem sabe as páginas mais visitas, etc..
Agora irei explicar algumas funções que acho necessário no code.
Estas funções eu utilizo num arquivo chamado db onde tem algumas funções que julgo necessário e não preciso ficar remontando vários code sendo que já tenho as funções prontas.
A primeira é a DataMySQL é para transformar a data no formato yyyy/mm/dd hh:nn:ss que é o formato do mySQL.
A segunda é a ExecuteSQL é apenas um função que utilizo para executar um Insert, Update ou Delete
Function DataMySQL(sData)
sMes = Month( sData )
sDia = Day( sData )
sHoras = Hour( sData )
sMinutos = Minute( sData )
sSegundos = Second( sData )
If sMes <= 9 Then sMes = "0" & sMes
If sDia <= 9 Then sDia = "0" & sDia
If sHoras <= 9 Then sHoras = "0" & sHoras
If sMinutos <= 9 Then sMinutos = "0" & sMinutos
If sSegundos <= 9 Then sSegundos = "0" & sSegundos
DataMySQL = Year(sData) & "-" & sMes & "-" & sDia & " " & sHoras & ":"
& sMinutos & ":" & sSegundos
End Function
Sub ExecuteSQL(xstrSQL)
Conexao.Execute(xstrSQL)
End Sub Espero ter ajudado, at+ galéra!!!!!