Ir para conteúdo
Fórum CódigoFonte.net

Rafael NH

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

  1. Rafael NH

    Problemas com Cookies

    Boa tarde amigos Fiz um sistema de login com cookies para restrição de páginas que só podem ser exibidas se o usuário estiver logado no sistema, porém estou tendo problemas com ele. Acontece que após logar pela primeira vez no sistema ele abre a página inicial, que é restrita a usuários, mas ao clicar em qualquer menu, indo para outra página também restrita, ele retorna para a página de login como se o usuário não estivesse mais logado, ai então logando novamente isso não acontece mais e consigo acessar as páginas normalmente. Geralmente após fazer isso (logar duas vezes) mesmo depois de sair do sistema clicando em logout o sistema funciona normalmente, logando novamente ele não da mais erros, geralmente é só na primeira vez após abrir o site que isso acontece e não é sempre, é meio esporádico. Segue abaixo o código da página de login <% response.buffer = true logado = Request.Cookies("login").item("acessologado") if logado = "true" then response.Redirect("admin.asp") response.End() end if url=request.QueryString("url") IF request.ServerVariables("REQUEST_METHOD")="POST" THEN 'OBTENDO DADOS---------------------------------------------------------------------------- login=request.Form("login") senha=request.Form("password") 'CONEXÃO---------------------------------------------------------------------------------- OpenConnection 'LOCALIZANDO USUÁRIO---------------------------------------------------------------------- textosql = "SELECT * FROM sis_login WHERE login='"&login&"'" Set recl = conexao.Execute(textosql) 'AUTENTICANDO E CRIANDO COOKIES----------------------------------------------------------- IF recl.EOF THEN 'se o usuário não foi localizado mensagem = "Usuário não localizado ou senha inválida." ELSE 'se localizou um usuário IF Strcomp(login,recl("login"),1)=0 AND senha = recl("senha") THEN 'Comparando usuário e senha Response.Cookies("login").item("acessologado") = "true" Response.Cookies("login").item("login") = login Response.Cookies("login").item("LoginId") = recl("id") id_usuario = recl("id_usuario") textosql = "SELECT * FROM sis_usuarios WHERE id='"& id_usuario &"'" Set recU = conexao.Execute(textosql) Response.Cookies("usuario").item("UserId") = recU("id") Response.Cookies("usuario").item("UserName") = recU("nome") Response.Cookies("usuario").item("Email") = recU("email") Response.Cookies("usuario").item("Privilegio") = recU("privilegio") IF request.Form("manter")="manter" THEN Response.Cookies("login").Expires = date + 7 Response.Cookies("usuario").Expires = date + 7 END IF 'GRAVANDO LOG--------------------------------------------------------------------- data = DataAmericano(date) hora = time sqlLogs = "INSERT INTO sis_logs (host, ip, data, hora, id_usuario,tipo) values ('"&Request.ServerVariables("REMOTE_HOST")&"','"&request.ServerVariables("REMOTE_ADDR")&"','"&data&"','"&hora&"','"&session("UserId")&"','1')" Set recLogs = conexao.Execute(sqlLogs) 'ENCERRANDO CONECXÕES E REDIRECIONANDO--------------------------------------------- set recLogs=nothing recU.close set recU=nothing set recLogs=nothing CloseConnection IF url="" THEN response.Redirect("admin.asp") 'redireciona para o sistem response.End() ELSE response.Redirect(url) 'redireciona para a última página visitada response.End() END IF ELSE 'Se não coincidir usuário e senha mensagem = "Usuário não localizado ou senha inválida." END IF END IF 'Fim localizar usuário END IF 'Fim envio do form %> Na primeira parte do código verifico se o usuário já está logado, e se estiver, direciono direto para a página inicial do sistema, caso contrário exibo o formulário de login. Após enviar o formulário verifico os dados no banco localizando o usuário e comparando a senha, e uma vez confirmado os dados são criados os cookies, salvo no banco de dados os dados do login efetuado no sistema e direciono para a página inicial ou a página que o usuário estava tentando acessar que recebo na variável url. Abaixo o código da validação feita em todas as páginas restritas ao usuário: 'Restringe uma página Function Restrito() If Request.Cookies("login").item("acessologado") <> "true" then 'Monta url da página dim s s = "http://" s = s & Request.ServerVariables("HTTP_HOST") ss = s & Request.ServerVariables("URL") if Request.QueryString.Count > 0 THEN ss = ss & "?" & Request.QueryString end if 'Redireciona para a página de login Response.Redirect "http://"&Request.ServerVariables("SERVER_NAME")&"/admin/default.asp?url=" &Server.URLEncode(ss) End if end function Se alguem puder me ajudar com este erro agradeço.
×
×
  • Criar Novo...