Ir para conteúdo

POWERED BY:

Arquivado

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

goya

[Resolvido] Session para cada usuario

Recommended Posts

Pessoal,

 

Estou fazendo uma area administrativa para um site. Fiz a tela de login, e armazeno o usuario em uma session. Ate ai, beleza.

 

O problema e que quando outro outro usuario se loga, o session do anterior e substituido pelo novo login.

 

Tem como fazer um session para cada usuario logado no site? Assim, se um clicar em LOGOUT, os demais continuam online.

 

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, se o mesmo user tentar logar duas vezes ele dá erro, e voc/~e pode ter varios usuarios logados ao mesmo tempo

Compartilhar este post


Link para o post
Compartilhar em outros sites

goya a ideia de session é exatamente o que voce quer cada um tem a sua

 

o que está acontecendo em seu caso especifico deve ter outra explicação pois o fato de um fazer logout não faz para os demais

Compartilhar este post


Link para o post
Compartilhar em outros sites

para expirar tudo aplica esse code:

response.expires = 0
response.expiresabsolute = Now() -1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Session.Contents.RemoveAll()
Session.Abandon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois e Mario. Nao entendo o que acontece

 

Se possivel, por favor, de uma olhada no meu codigo.

 

 

-- Pagina de Login --

 

<%
Login = Request("login")
Senha = Request("senha")

Set rs = Server.CreateObject("ADODB.Recordset")

xsql = "Select * from tb_login where Usuario = '" & Login & "' and Senha = '" & Senha & "'"
rs.open xsql, conn


if rs.eof then

response.redirect "../index.asp?Erro=1"
Else
if rs("Ativo") = 0 then
	rs.Close
	Set rs = Nothing

	response.redirect "../index.asp?Erro=2"
else
	session("usuario") = rs("Nome")

	rs.Close
	Set rs = Nothing

	response.redirect "index.asp"	
End if
End if
%>

 

 

 

-- Pagina do Logout --

 

<%

Session.Abandon

response.redirect "index.asp"

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

na pagina de Logout ,. junto com o session.Abandon

 

insira o código que postei acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum,

 

Mas o problema em si nao e somente na pagina de Logout.

 

Quando um usuario se conecta no site, eu armazeno ele no Session, o problema e que quando OUTRO usuario se conecta, o session e substituido por esse novo usuario. Ou seja, ou invez de ter 2 online, so tenho o ultimo logado :-/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os Logins são diferentes para cada usuário certo?

Para que serve aquele rs("Ativo")?

Uma outra sugesão seria atrelar a Sessão, o usuário mais uma variante como data e hora por exemplo.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso você esta logando na mesma maq. ou estar a testar em várias maquinas ?

pois em um ambiente normal, com as sessions com config. padrão do IIS, ele é para ter o número de session referentes ao login iniciados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

Acho que o erro e meu mesmo!!!

 

Apenas confirma uma coisa:

 

Estou no Firefox. Eu logo com um usuario. Se eu abrir uma NOVA janela, ele nao deveria entender como uma NOVA sessao?

 

Pq depois eu testei abrindo o Safari e la os dois ficaram online. E quando um saia, o outro continuava online.

 

O erro esta no MEU entendimento?

 

 

 

Public2004

 

Aquele rs e apenas para verificar se o usuario esta ativo. Pois ele pode estar cadastrado mas inoperante. Isso quem decidira sera o admin. do site

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou no Firefox. Eu logo com um usuario. Se eu abrir uma NOVA janela, ele nao deveria entender como uma NOVA sessao?

 

Não

 

A session vai existir independente da quantidade de janelas que abrir, mas se abrir o site em navegadores diferentes, ai sim, existirão sessions diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Vinicius!

 

Agora sim, esta tudo esclarecido!

 

Obrigado a todos pela ajuda!!!!

 

 

Post Finalizado

 

:thumbsup: :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

complementando, O objeto SESSION, é utilizado para guardar informações sobre o usuário. Podemos colocar em sessões desde simples variáveis como cor de fundo da página ou autenticação do usuário em um site restrito.

 

Quando iniciamos uma aplicação na internet o servidor sabe quem você é, quando entra e quando sai da aplicação, com as sessões podemos guardar essas informações únicas de cada usuário.

 

Quando são criados os Objetos e quando são destruídos?

 

São criados quando um usuário inicia uma aplicação ASP, e destruídas quando o tempo de sessão expira.

O tempo é determinado no arquivo Global.asa.

No exemplo abaixo a sessão irá expirar em um intervalo de 5 minutos após aberta:

 

<%Session.Timeout=5%>

 

Para abandonar a sessã, por exemplo, quando o usuário clica em LogOut, utilizamos:

 

<%Session.Abandon%>

 

Já sabemos como fechá-las, mas como guardar variáveis nas sessões???

 

Tenho uma aplicação que exige login de usuário.

Na página onde o usuário é autenticado, utilizamos o seguinte formato:

 

<%Session("username")=Request.Form("nomeusuario")%>

 

Um simples exemplo onde instancio na sessão Username, o valor do campo Nomeusuario do formulário anterior.

Podemos criar uma página de inclusão para verificar se o usuário está validado ou não:

 

<%if usuariovalidado = true then

session("logado") = "true"

else

session("logado") = "false"

response.redirect("erro.asp")

end if%>

 

Incluimos em cada página que queremos proteger (em ASP, os includes, são carregadas antes de qualquer variável da página).

Para escrever por exemplo, “Bom dia: usuário”, fazemos assim;

 

Bom dia: <%Response.Write Session("nomeusuario") %>

 

fonte:http://quantodaniel.wordpress.com/2007/11/13/objeto-session-asp/

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.