none
Problemas com Request.Servervariables RRS feed

  • Pergunta

  • Bom dia Pessoal,

    Estou tentando recuperar o os dados de uma página para redirecionamento após o logon, mas estou tendo problemas em relação a quantidade de "variáveis" do link. Estou fazendo desta maneira: 

     Na página que necessita autenticação, eu coloco:

    if session("Login") = "" then
    
    	Page = "http://" & Request.Servervariables("Server_NAME") & Request.Servervariables("SCRIPT_NAME") & "?" &Request.Servervariables("QUERY_STRING")
    
    	response.redirect "login.asp?erroid=2&Page=" & Page
    
    end if
    
    
    
    

    O resultado disso quando o usuário tenta entrar sem estar autenticado é:

    http://localhost/homecare/login.asp?erroid=2&Page=http://localhost/homecare/adm_cad_Pacientes.asp?acaoid=2&PacienteID=62

    No form de logon, coloquei um campo com o nome "page" que dá um request nesse endereço... É justamente aí que está o problema...

    Quando digito o usuário e senha, o form dá um submit nessas informações, inclusive com o campo page. Uma outra página recebe esta informação, faz a autenticação do usuário e dá um redirect:

    if request("page") = "" then
    
    	response.redirect "pacientes.asp"
    
    else
    
    	response.redirect page
    
    end if
    
    
    
    

    Dei um response.write nesse request("page")  e ele não está recuperando de forma correta o link, algumas informações são perdidas. Por exemplo:

    Ao invés de aparecer:

    http://localhost/homecare/adm_cad_pacientes.asp?acaoid=2&PacienteID=62

    aparece:

    http://localhost/homecare/adm_cad_pacientes.asp?acaoid=2

    ou seja, o redirect funciona perfeitamente, mas o request só recupera a primeira informação alí... (OBS: se tiver mais, ele continua recuperando só a primeira, depois do ?)

    Alguém sabe como resolver?

    Fico no aguardo

     


    Eder Pardeiro



    sexta-feira, 8 de julho de 2011 12:47

Respostas

  • Descobri o problema pessoal....

    Seguinte...

    Quando dou um request de dentro do form, ele não pega a segunda parte (depois do &) justamente por causa do &...

    Então fiz uma pequena gambiarra... quando  ao enviar os dados para a página de logon estou dando um replace substituindo o & por $ecom$:

    if session("Login") = "" then
    
    	Page = "http://" & Request.Servervariables("Server_NAME") & Request.Servervariables("SCRIPT_NAME") & "?" & replace(Request.Servervariables("QUERY_STRING"),"&","$ecom$")
    
    	response.redirect "login.asp?erroid=2&Page=" & Page
    
    end if
    
    
    
    
    
    

    Ao chegar no form de logon, o campo page está recebendo de forma correta o link, visto que substituí o & que estava impedindo isso.

    Ao submeter o form, o sistema autentica o usuário e dá o redirect substituindo o $ecom$ por &

    If request("page") = "" then
    
    	response.redirect "pacientes.asp"
    
    else
    
    	response.redirect replace(request("page"),"$ecom$","&")
    
    end if
    
    
    
    


    Por enquanto é a solução.. se alguém tiver uma idéia melhor....

    De qualquer forma, obrigado!


    Eder Pardeiro
    • Marcado como Resposta Eder Pardeiro sexta-feira, 8 de julho de 2011 13:26
    sexta-feira, 8 de julho de 2011 13:26