Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!!!
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
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
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"
%>
na pagina de Logout ,. junto com o session.Abandon
insira o código que postei acima.
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 :-/
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.
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.
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
>
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.
beleza Vinicius!
Agora sim, esta tudo esclarecido!
Obrigado a todos pela ajuda!!!!
Post Finalizado
:thumbsup: :thumbsup:
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/
xanburzum
Valeu amigao!!!
Grande ajuda!!!!
:thumbsup: :thumbsup:
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