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

Usuarios Online


mestre fyoda

Pergunta

esta dando erro no site http://i.1asphost.com/comunidade/users_online.asp

Eu já mechi no Avançados no InterNet Explorer , abilitei aparecer o erros e nada .


<body onunload="window.location='deleta_usuarioonline.asp'">
<% Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dados")
Conexao.Open ConStr 

agora=Time()
ip=Request.ServerVariables("REMOTE_ADDR")

If Session("login") = "" Then
user=""
Else
user=Session("login")
End If

Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"
Conexao.Execute(Sql)


Sql = "SELECT DISTINCT ip FROM online"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conexao, 3, 3 
If rs.EOF Then %>
Nenhum usuario está online!
<% else %>
Existem <%=rs.recordcount%> online<BR>
<% Sql1 = "SELECT DISTINCT ip FROM online WHERE user <> '' "
Set RS1 = Server.CreateObject("ADODB.Recordset")
RS1.open Sql1,Conexao, 3, 3 %>
Sendo <%=rs1.recordcount%> membros e 
<%Sql2 = "SELECT DISTINCT ip FROM online WHERE user = '' "
Set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.open Sql2,Conexao, 3, 3 %>
<%=rs2.recordcount%> visitantes.<BR>
<% Sql="Select * from online"
Set rs3=Conexao.Execute(Sql)
If rs1.EOF then %>
<% else %>
Os membros online são: 
<% While Not rs1.EOF %>
<%=rs3("user")%>, 
<% rs1.MoveNext
Wend 
End If 
End If %>
</body>

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0
Guest Carlos Seiji

ae pelo q deu pra perceber ele ta dando erro porque você esta tentando inserir no campo user um valor vazio ou nulo....algo assim...

seu insert

Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"
coloque um response.write sql para ver o que ele esta tentando inserir no campo e desabilite a execucao do insert ex.:
Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"
response.write sql
'conn.Execute(SQL)
response.end 'este comando para parar a pagina assim não dara erros no resto da codificacao pela falta do insert.

Link para o comentário
Compartilhar em outros sites

  • 0

Testa assim

<body onunload="window.location='deleta_usuarioonline.asp'">
<% Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dados")
Conexao.Open ConStr 

agora=Time()
ip=Request.ServerVariables("REMOTE_ADDR")

If Session("login") = "" Then
user="0"
Else
user=Session("login")
End If

Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"
Conexao.Execute(Sql)


Sql = "SELECT DISTINCT ip FROM online"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conexao, 3, 3 
If rs.EOF Then %>
Nenhum usuario está online!
<% else %>
Existem <%=rs.recordcount%> online<BR>
<% Sql1 = "SELECT DISTINCT ip FROM online WHERE user <> '' "
Set RS1 = Server.CreateObject("ADODB.Recordset")
RS1.open Sql1,Conexao, 3, 3 %>
Sendo <%=rs1.recordcount%> membros e 
<%Sql2 = "SELECT DISTINCT ip FROM online WHERE user = '' "
Set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.open Sql2,Conexao, 3, 3 %>
<%=rs2.recordcount%> visitantes.<BR>
<% Sql="Select * from online"
Set rs3=Conexao.Execute(Sql)
If rs1.EOF then %>
<% else %>
Os membros online são: 
<% While Not rs1.EOF %>
<%=rs3("user")%>, 
<% rs1.MoveNext
Wend 
End If 
End If %>
</body>

Link para o comentário
Compartilhar em outros sites

  • 0

cara é o seguinte, eu coloquei 0 na variavel user isto quer dizer que seu bd no campo user não aceita valor vazio, então va no seu bd e mude isso,

Link para o comentário
Compartilhar em outros sites

  • 0

ei gente , cada vez que eu desconecto da Internet e entro no site ele soma + 1 .

Por exemplo , ele estava com 5 usuarios online , eu fechava a tela e desconectava e depois conectava na InterNet ele somava + 1 usuario .

Se eu não desconectar ele não soma + 1 usuario , entenderam .

O que esta acontecendo .

deleta_usuarioonline


<% 
Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("online")
Conexao.Open ConStr 

Sql="DELETE * FROM online  "
Conexao.Execute(Sql)

%>

Link para o comentário
Compartilhar em outros sites

  • 0

isso é porque ele usa seu endereço ip para verificar se esta ou não logado!!!!!!!

lembra que ele busca o ip docara e grava no bd!!!

agora=Time()

ip=Request.ServerVariables("REMOTE_ADDR")

If Session("login") = "" Then

user=""

Else

user=Session("login")

End If

Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"

Conexao.Execute(Sql)

Link para o comentário
Compartilhar em outros sites

  • 0

tipo daquele link que te mostrei antes

sql="DELETE FROM Online WHERE DataAcesso < '"& DataMySQL(timeleft) &"';")
Conexao.Execute(Sql)
ai a data mysql
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
a parte que grava no bd:
QueryStrr = "?" & Request.ServerVariables("query_String"

strSQL = "Select * From Online Where HostIP = '" & Request.servervariables("REMOTE_ADDR") & "'"
Set Rs = Conexao.Execute(strSQL)
rs.close
set rs=nothing
If Rs.BOF AND Rs.EOF Then

sqlt="INSERT INTO Online(HostIP,DataAcesso,Pagina) VALUES('" & Request.servervariables("REMOTE_ADDR") & "', '" & DataMySQL(Now()) & "', '" & Request.ServerVariables("SCRIPT_NAME") & QueryStrr & "');"
Set Rs = Conexao.Execute(sqlt)
rs.close
set rs=nothing

Else

sql="UPDATE Online SET DataAcesso = '" & DataMySQL(Now()) & "',Pagina = '" & Request.ServerVariables("SCRIPT_NAME") & QueryStrr & "' Where HostIP = '" & Request.servervariables("REMOTE_ADDR") & "';"
Set Rs = Conexao.Execute(sql)
rs.close
set rs=nothing
End If

qualquer coisa pega aquele sistema que te passei e vai alterando ele....

Link para o comentário
Compartilhar em outros sites

  • 0
Ele continua não deletando .

<% 
Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dados.mdb")
Conexao.Open ConStr 

ip=Request("ip")

Sql="DELETE * FROM online  where ip='"&ip&"'"
Conexao.Execute(Sql)
%>

olá

o que tem de errado nesse codigo?

É esse seu codigo?

Ele não deleta porque?

Dá algum erro, não faz nada?

O que acontece exatamente.

Desculpe por 'pegar o trem andando', hehe

ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

não da nenhum erro .

Eu baixo o bd do site pra ver se deletou os dados mas não esta deletando , porque ?

users_online

<body onunload="window.location='deleta_usuarioonline.asp'">
<% Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dados.mdb")
Conexao.Open ConStr 

agora=Time()
ip=Request.ServerVariables("REMOTE_ADDR")

If Session("login") = "" Then
user=""
Else
user=Session("login")
End If

Sql="INSERT INTO online VALUES ('"&agora&"','"&ip&"','"&user&"')"
Conexao.Execute(Sql)


Sql = "SELECT DISTINCT ip FROM online"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conexao, 3, 3 
If rs.EOF Then %>
Nenhum usuario está online!
<% else %>
Existem <%=rs.recordcount%> online<BR>
<% Sql1 = "SELECT DISTINCT ip FROM online WHERE user <> '' "
Set RS1 = Server.CreateObject("ADODB.Recordset")
RS1.open Sql1,Conexao, 3, 3 %>
Sendo <%=rs1.recordcount%> membros e 
<%Sql2 = "SELECT DISTINCT ip FROM online WHERE user = '' "
Set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.open Sql2,Conexao, 3, 3 %>
<%=rs2.recordcount%> visitantes.<BR>
<% Sql="Select * from online"
Set rs3=Conexao.Execute(Sql)
If rs1.EOF then %>
<% else %>
Os membros online são: 
<% While Not rs1.EOF %>
<%=rs3("user")%>, 
<% rs1.MoveNext
Wend 
End If 
End If %>
</body>
deleta_usuarioonline
<% 
Set Conexao = CreateObject("ADODB.CONNECTION")
conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dados.mdb")
Conexao.Open ConStr 

ip = Request.ServerVariables("REMOTE_ADDR")

del = "DELETE agora, ip, user FROM online WHERE user="&user&" "
conObj.execute(del) 

%>

Link para o comentário
Compartilhar em outros sites

  • 0

<body onunload="window.location='deleta_usuarioonline.asp'">

essa linha ai ia abrir o arquivo 'deleta_usuarioonline.asp' correto? mas so quando você fechar a janela!!! né..

então a conclusão é o seguinte:

Se o comando para deletar os usuarios não rodar, ele não vai apagar.... você tera que corrigir isto.......

Link para o comentário
Compartilhar em outros sites

  • 0

você tinha razao bareta , o erro estava ai .

Grato a todos .

Mas so tem um probleminha .

Eu cadastrei um usuario e depois ele sumia .

Será que ele esta sendo deletado pelo o script de usuarios online .

No BD ele tem duas tabelas :

- online

- usuarios

Deve ser por causa disso , de ter essas duas tabelas ?

Eu teria que criar um outro banco de dados ?

Link para o comentário
Compartilhar em outros sites

  • 0

provavelmente sim cara

olhe bem todos os DELETE que você criou aí, e veja se ele está apontando pra tabela certa!

Link para o comentário
Compartilhar em outros sites

  • 0

Eu cadastrei um usuario e depois ele sumia .

não entendi??

del = "DELETE agora, ip, user FROM online WHERE user="&user&" "
conObj.execute(del) 

aparentemente...´se for so este delete ele esta correto....outra tabela??? não é nescessario... você tem uma tabela onde ficam os membros e outra que mostra quem ta online... isso já é suficiente.... você já viu o que eu fiz.. ele usa tres tabelas

mensagens - sistema de recados

membros- grava o registro do povo

online- armazena as pessoas que estão online

....

os links estão na minha assinatura!!!!!!!!!

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,3k
×
×
  • Criar Novo...