Ir para conteúdo
Fórum Script Brasil
  • 0

Tutorial de Script de Usuário On-line


arldin

Pergunta

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!!!!!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Então quer dizer q se estiver logado e a energia cair e voltar eu continuou logado, só serei expirado do site após 10 minutos ...

Seguinte imagine um sistema de login ::: exemplo eu estou logado no sistema, ai vem alguém e tenta se logar com a minha senha posso criar uma verificação, avisando q já existe um usuário logado legal !!! só pra concluir a energia ou o sistema caiu e voltou em menos de 8 minutos e eu estava on line efetuando uma compra ... vou ter q esperar mais dois minutos para voltar ao sistema e me logar novamente, pois foram 8 minutos sem o sistema e eu terei q esperar mais 2 para completar 10 e assim poder me logar novamente ... correto isso ???

Link para o comentário
Compartilhar em outros sites

  • 0

E quase igual a um que eu tenho no meu site, so que este ele da um refhes a cada 5 seg, e dentro desde 5 seg se alguém entrar ou sair ira aparecere, este e um pouco diferente ele so informar novo numero de usuario depois de 10 minutos, se por acasso você sair antes ele so irar fazer a nova atualização depois de 10 minutos, nçao importando se caiu a energia na sua casa, o que irar prevalecer e o que esta no script,agora se por acasso a sua energia voltar antes e você se conctar no site ele ira contar como novo usuario e so depois de 10 minutos e que ele vai fazer a atualização na pagina

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, cuidado o flood...

Gente, isso aqui não é chat nem blog!

Jow, de uma olhadinha no código e no tutorial, você verá que sua pergunta já está respondida.

Arldin, insisto com você, apesar de achar sua iniciativa bacana é o terceiro (ou mais) script que você encontra pronto sobre o mesmo assunto e que fazem basicamente a mesma coisa! Procure portanto postar no mesmo tópico, evitando desta forma tópicos desnecessários... Até por que, todos eles se referem exatamente ao mesmo assunto.

As soluções para fazer um bom contador de usuários on-line já foram passadas tanto por mim quanto pelo Bareta, tá na hora de arregaçar as mangas e começar a estudar! Códigos prontos?!? Ótimos... mas será que você está entendendo algum coisa? Estás aprendendo? Ou derepente estás só se livrando? Este fórum no meu entendimento se propõe a ampliar os conhecimentos de todos e não vejo isso acontecendo contigo neste caso específico.

Outro detalhe Arldin, poste seus códigos dentro das tags code, desta forma:

codigos

Ajuda muito na hora de ler e facilita a vida de todos.

Edit.: já ia esquecendo, sempre, sempre, sempre poste o link de referência de onde o seu tutorial foi encontrado.

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...