Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

silas_i

Usuários Online

Recommended Posts

Olá pessoal peguei um exemplo de usuários online que esta funcionando legal.. só que tenho algumas dúvidas...

 

Preciso que que qdo a Session_OnStart for inicializada ele pegasse o ID (esse ID esta cadastrado no BD) do usuário que esta acessando a página e fizesse um update

 

Qdo for finalizada Sub Session_OnEnd ele de um outro UPDATE...

 

Como eu posso fazer isso !?

 

O exemplo do Global.asa

 

<script LANGUAGE="VBScript" RUNAT="Server">Sub Application_OnStartApplication("ActiveUsers") = 0End SubSub Session_OnStartSession.Timeout = 20Session("Start") = NowApplication.LockApplication("ActiveUsers") = Application("ActiveUsers") + 1Application.UnLockEnd SubSub Session_OnEndApplication.LockApplication("ActiveUsers") = Application("ActiveUsers") - 1Application.UnLockEnd Sub</SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse global.asa você terá que recuperar um cookie, para saber quem é o usuário, o que te obrigará a sempre gravar um cookie. Com relação a pesquisa em BD será da mesma forma que nos .ASP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço para criar uma conexão com o banco de dados no global.asa sendo que não posso colocar <%%> ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa tag: <script LANGUAGE="VBScript" RUNAT="Server"> já diz para o servidor que é um Script VB, que deve rodar no servidor, igualzinho ao ASP, não precisa colocar as Tags <%%>, é só digitar os comandos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja meu exemplo

 

ASP [/tr][tr]

<script LANGUAGE="VBScript" RUNAT="Server">

 

set conn = server.createobject("adodb.connection")

conn.open="conexao-dsn"

 

Sub Application_OnStart

Application("ActiveUsers") = 0

End Sub

 

Sub Session_OnStart

Session.Timeout = 20

Session("Start") = Now

Application.Lock

Application("ActiveUsers") = Application("ActiveUsers") + 1

conn.execute("UPDATE tbl_users SET ES_Online='S' WHERE ID='"&session("id_user")&"'")

Application.UnLock

End Sub

 

Sub Session_OnEnd

Application.Lock

Application("ActiveUsers") = Application("ActiveUsers") - 1

conn.execute("UPDATE tbl_users SET ES_Online='N' WHERE ID='"&session("id_user")&"'")

Application.UnLock

End Sub

 

</SCRIPT>

[/tr]

 

Só tem um detalhe agora ele não esta fazendo o UPDATE no banco de dados !!!!! Alguém saberia me dizer o pq !?????

 

Tentei fazer ultilizando cookies desta maneira...

 

ASP [/tr][tr]

<script LANGUAGE="VBScript" RUNAT="Server">

 

set conn = server.createobject("adodb.connection")

conn.open="cn-erpweb"

 

Sub Application_OnStart

Application("ActiveUsers") = 0

End Sub

 

Sub Session_OnStart

Session.Timeout = 20

Session("Start") = Now

Application.Lock

conn.execute("UPDATE tbl_users SET ES_Online='S' WHERE ID ='"&request.cookies("ID_USER")("ID")&"'")

Application("ActiveUsers") = Application("ActiveUsers") + 1

Application.UnLock

End Sub

 

Sub Session_OnEnd

Application.Lock

Application("ActiveUsers") = Application("ActiveUsers") - 1

conn.execute("UPDATE tbl_users SET ES_Online='N' WHERE ID='"&request.cookies("ID_USER")("ID")&"'")

Application.UnLock

End Sub

 

</SCRIPT>

[/tr]

 

Só que tb não deu certo.rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal muito estranho... este último código com Cookies funcionou mais ou menos...Qdo eu me logo ele não faz o update.. agora qdo eu acesso a página "logout.asp" que tem "session.abandon()"ele faz o update só que faz o update do Sub Session_OnStart não deveria fazer o Session_OnEnd ???????? agora não estou entendendo mais nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu já descobri que o global.asa esta funcionando... peguei um help com nosso brother salgado e ele me orientou da seguinte maneira:

 

Que eu criasse um cookie que expirasse de dois em dois dias (no caso eu coloquei cinco) dessa maneira todas as vezes que alguém acessar o sistema ele renova a expiração. Até ae beleza. O Cookie foi gravado e td mais, no Session_OnStart ele esta fazendo o update sim. Porém no Session_OnEnd ele não faz... já esperei..esperei.. pra dar o session.Timeout e NADA.rs

 

Engraçado que ontem fiz o teste com um número fixo e funcionou hj nem com o Número FIXO esta funcionando...

 

Como não sei se o Cookie esta na máquina do cliente eu coloquei no GLOBAL.ASA assim...

 

ASP [/tr][tr]

Sub Session_OnEnd

 

if request.cookies("ID_User")("ID") <> Empty Then

conn.execute("UPDATE tbl_users SET ES_Online='N' WHERE ID = '1'")

End if

.

.

.

[/tr]

 

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.