로그인을 구현하고 있는데 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()로 감싸줘서 인코딩해서 가야만 제대로된 값을 가져갈수 있게 되져...^^*
이상 로그인체크후 갈고자 했던 페이지로 이동하는 방법에 대한 설명을 마치져..^^*
넘 어렵게 설명했나여?
'공부 > ASP' 카테고리의 다른 글
ASP + AJAX(JSON) + 엔터 없애기 (1) | 2014.08.21 |
---|---|
[asp] 테이블 복사 (0) | 2014.07.25 |
[asp] asp utf-8 페이지 한글 깨짐은 이걸로 해결! (0) | 2014.07.24 |
[asp] request 한 거 다 불러오기 (0) | 2014.07.24 |
[asp] asp에 input text를 배열로 넘기고 DB로 insert (0) | 2014.07.03 |
댓글