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
Pergunta
BRuckey
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)
PS: Conexão você deve utilizar a seguinte linha para conexao 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. Agora iremos montar a subrotina userOffline() que irá ser responsavel para verificar se o visitante ainda está no site ou já saiu. 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 DeleteEspero ter ajudado, at+ galéra!!!!!
Link para o comentário
Compartilhar em outros sites
2 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.