Ir para conteúdo

POWERED BY:

Arquivado

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

MAPSantos

Script Login

Recommended Posts

Oi comunidade,Eu usei um script que achei na net para gestao de usuarios. tou querendo mudar alguns parametros no "timeout" mas n tou conseguindo.o ficheiro que faz a gestão dos utilizadores activos é este:<!--#include file='includes/dbconnection.inc'--> <%onlinedate = now()OnlineUserIp = Request.ServerVariables("REMOTE_ADDR")strUserID = Replace(Session("userName"), "'", "''")strTimeout = 10StrOnlineTimedout = dateadd("n",-strtimeout*3,onlinedate)StrSql = "Select * From Active_Users Where User_ID='" & strUserID & "'"Set rs1 = adoCon.Execute (StrSql)if rs1.eof then StrSql = "INSERT INTO active_Users (Logon_time,User_ip,Last_Seen,Last_Page,User_ID) " &_ "VALUES ('" & onlinedate & "','" & OnlineUserIp & "','" & now() & "','" &_ request.servervariables("path_info") & "','" & strUserID & "')" adoCon.Execute (StrSql)else StrSql = "UPDATE active_users SET Last_Seen='" & now() & "', Last_Page='" &_ request.servervariables("path_info") & "' WHERE User_ID='" & strUserID & "'" adoCon.execute (StrSql)end ifStrSql = "DELETE FROM active_users WHERE Last_Seen < #" & StrOnlineTimedout &"#"adoCon.execute (StrSql)%>o meu problema é que quando o usuario fecha o browser sem fechar a sessao fica mto tempo sem se poder logado pois diz que ta' ja' logado, eu preciso que ele faça o delete da tabela active_users mais rapido, mas n tou conseguindo perceber o calculo matematico.alguem me ajuda por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionar funciona, a menos que o browser não seja fechado de forma normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

salgado e como posso aplicar uma funcao pelo metodo onunload do html !?!editado:coloquei este código<body onunload="<%StrSql = "DELETE FROM active_users WHERE User_ID='" & strUserID & "'"adoCon.execute (StrSql)%>"></body>e parece resultar, parece-vos correcto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso o ideal seria usar um JS no estilo AJAX. Enviando dados para uma página externa que faça o LogOut. Dessa forma que está o LogOut é direto ao carregar a página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script>

funcao_em_js(){

//chama pagina asp q vai rodar somente essa linha de delete na sua tabela de active users q pode ser num frame escondido, iframe, etc...

}

</script>

<body onunload="funcao_em_js();">

 

</body>

 

mas você pode consultar o exemplo do site bradesco... ele da baixa na sua "sessão" e abre uma nova janela com o site da shopfacil e fecha a atual origem...

 

beleza?

;)

<BODY onUnload="OnLeave()"><script>function OnLeave(){  var urlfechasessao;  var urlredir;  if(LeaveControl > 0)  {	urlfechasessao = document.location.protocol + "//" +			document.location.hostname +			"/scripts/ib2k1.dll/FECHASESSAO?CTL=9996393745301846521002";	window.open(urlfechasessao, "fechasessao", "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=1,screenX=0,screenY=0,left=0,top=0,width=760,height=450");  }   if(LeaveControl == 1)  {	urlredir = "http://www.shopfacil.com.br/shopfacil/sf/index.asp?origem=2";	if (typeof(top.opener)==typeof(window) &&	  typeof(top.opener.top)==typeof(window) &&	  !top.opener.top.closed &&	  typeof(top.opener.length)==typeof(self.length))	{	  if(urlredir.length > 0)		top.opener.top.location = urlredir;	}	else	{	  if(urlredir.length > 0)		window.open(urlredir, "shopfacil", "toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=760,height=440");	}	if(navigator.appName.indexOf("Microsoft") != -1)	  top.close();  }}<script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

strTimeout = 10DIMINUA O VALOR DA VARIÁVEL ACIMA OU DIMINUA O DÍGITO MULTIPLICADOR DA OPERAÇÃO ABAIXO:StrOnlineTimedout = dateadd("n",-strtimeout*3,onlinedate)QUE NO CASO É 3

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.