본문 바로가기
공부/ASP

[ASP] 로그인체크 후 갈려고 했던 페이지로 이동하는 방법

by Ohming 2014. 8. 1.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

로그인을 구현하고 있는데 Request.ServerVariables("QUERY_STRING")을 찍어볼 떄는 문제없이 뒤에 있는 변수들이 여러개여도 상관없이 다 찍히는데

이걸 login 페이지에서 request해서 받으면 물음표 뒤에있는 첫 변수만 가져오고 & 이걸로 연결된 뒤에있는 변수들은 가져오지 못하는 문제가 있었음.  그런데 아래 글처럼 Server.URLEncode() 로 감싸고선 보내면 문제없이 감. 야호!

나는 strReURL을 strReURL  = "http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("PATH_INFO") &"?"& Request.ServerVariables("QUERY_STRING") 이렇게 하고

location.replace('http://로그인페이지 주소로/login.html?ReturnURL="& Server.URLEncode(strReURL)&"');



------------------------



메인화면에서 로그인을 안한상태에서 특정페이지로 이동할때 로그인 된후 

가고자 했던 페이지로 이동하는 방법입니다. 

우선 가려고 했던페이지의 맨 위쪽에 

<% 
if session("mem_id") = "" then 
response.redirect "../login/login.asp?ReturnURL=" & Server.URLEncode(Request.ServerVariables("URL") & "?" & Request.ServerVariables("QUERY_STRING")) 

End if 
%> 
이런식으로 써주시고여... 

로그인 페이지에서 로그인 ReturnURL을 hidden값으로 로그인 체크하는 페이지로 넘겨줍니다. 
<input type="hidden" name="ReturnURL" value="<%=request("ReturnURL")%>">이런 식으로 하고 submit하시면 되져...^^* 

그리고 로그인이 성공하면... 
<% 
response.redirect ".." & ReturnURL 
%> 

이런식으로 하면 가고자 했던 페이지로 이동하게 됩니다.. 

여기서 Request.ServerVariables("URL")은 가려고 했던페이지의 주소가 됩니다. 여기서 뒈에 ?idx=2 이런 변수는 안넘어가게 되져... 

그걸 가지고 갈려면 "?"&Request.ServerVariables("QUERY_STRING")를 써주셔야합니다. 

Request.ServerVariables("QUERY_STRING")는 ?뒤에 있는 변수를 구하는거져... 

근데 단지 Request.ServerVariables("QUERY_STRING")만 써주면 변수가 2개이상일때 즉 idx=3&id='하이매직' 이런식으로 될땐 앞에 idx=3만 가지고 가게 되져...&서 부터 못가져가게 됩니다... 

구래서 Server.URLEncode()로 감싸줘서 인코딩해서 가야만 제대로된 값을 가져갈수 있게 되져...^^* 

이상 로그인체크후 갈고자 했던 페이지로 이동하는 방법에 대한 설명을 마치져..^^* 

넘 어렵게 설명했나여?



출처 : http://blog.daum.net/jjogume/852122

댓글