Web Design Valdeci 0 Denunciar post Postado Junho 17, 2016 Bom Dia, Estou desenvolvendo um sistema onde os dados para login são enviados via ulr, sem ser por post ou get. Utilizo o sistema abaixo para fazer a confirmação e efetuar o login criando uma sessão no cookie. Só que ele somente sustenta a sessão se os dados forem enviados via post ou get. Quando envio direto pela url tipo: www.site.com.br/logar.asp?login=valdeci&senha=12345 Ele acessa a primeira página mas quando tentamos navegar ele desloga e perde a sessão. Já fiz um teste imprimindo os dados da sessão e os mesmo são recebidos na pagina principal depois do login, mas quando tentamos navegar ele perde a sessão e volta para a pagina de login, eu utilizo o código abaixo para verificar se ainda tem sessão ou não, e ele simplesmente cai voltando a tela de login. If IsEmpty(Session("login")) Then Response.redirect("login_associado.html") End if Existe alguma maneira de criar a sessão e sustenta-la enviando os dados via url (response.redirect) de um caminho fisico com esse?www.site.com.br/logar.asp?login=valdeci&senha=12345 Segue o codigo <!--#include file="../assets/conexao/conexao.asp" --> <% ' vamos fazer o request do nosso login e senha que foi enviado via url no formulário login = request.Querystring("login") senha = request.Querystring("senha") ' agora vamos usar o replace para evitar que engraçadinhos tenter furar nosso sistema de login login = replace(login,"'","''") login = replace(login,"#","''") login = replace(login,"$","''") login = replace(login,"%","''") login = replace(login,"¨","''") login = replace(login,"&","''") login = replace(login,"'or'1'='1'","''") login = replace(login,"--","''") login = replace(login,"insert","''") login = replace(login,"drop","''") login = replace(login,"delet","''") login = replace(login,"xp_","''") login = replace(login,"select","''") login = replace(login,"*","''") ' e agora pra a senha senha = replace(senha,"'","''") senha = replace(senha,"#","''") senha = replace(senha,"$","''") senha = replace(senha,"%","''") senha = replace(senha,"¨","''") senha = replace(senha,"&","''") senha = replace(senha,"'or'1'='1'","''") senha = replace(senha,"--","''") senha = replace(senha,"insert","''") senha = replace(senha,"drop","''") senha = replace(senha,"delet","''") senha = replace(senha,"xp_","''") senha = replace(senha,"select","''") senha = replace(senha,"*","''") ' feito isso vamos mudar o nome das variaveis para evitar outra tentativa de furos Session("lgn") = login Session("snh") = senha 'aqui abrimos a conexão com um banco acess onde estão armazenadas as senhas Set rs = Server.CreateObject("ADODB.Recordset") rs.open ("SELECT * FROM usuariosapp WHERE email = '" & Session("lgn") & "' AND senha='"&Session("snh")&"'"), Conexao if rs.eof then response.Redirect("errou_senhaC.asp") 'se o cara errar a senha ele vai ser redirecionado para essa pagina else Session("login") = "logado" response.Cookies("logado")=login response.cookies("logado").expires="31/12/2018" response.redirect ("principal.asp") end if %> Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Junho 18, 2016 Quando você imprimiu os dados da session, você colocou logo acima do IF de verificação da session vazia ou no inicio de todo o código? Já verificou o session timeout? Compartilhar este post Link para o post Compartilhar em outros sites
Web Design Valdeci 0 Denunciar post Postado Junho 19, 2016 Coloquei abaixo do if de todas as páginas. Compartilhar este post Link para o post Compartilhar em outros sites
Fábio BN 17 Denunciar post Postado Junho 19, 2016 Tentou isso? If Session("login") = false thenResponse.redirect "login_associado.html"End if Compartilhar este post Link para o post Compartilhar em outros sites