WEB개발

ASP 리턴URL URLEncode저장

스쿠터로세계일주 2012. 1. 1. 04:14


--현재 페이지를 엔코딩해서 가져갈 수 있게 만듬

nowpage=request.ServerVariables("SCRIPT_NAME") & "?" & request.ServerVariables("QUERY_STRING")
If Right(nowpage,1)="?" Then nowpage=Left(nowpage,Len(nowpage)-1)
Session("nowpage")=nowpage
seNowPage = server.URLEncode(session("nowpage"))

--리턴url을 엔코딩해서 가져가는 이유는 특수문자나 파라미터 등을 가져갈때 URL에 문제가 생길 수 있기 때문이다. 공백도 마찬가지..때문에 리턴url을 엔코딩해서 파라미터로 보내주면 이상없이 보낼 수 있다.

 

 

--아이피를 기준으로 참일때만 실행하기 위해 사용

bool_lawseecom =false
if Request.ServerVariables("REMOTE_ADDR") = "112.112.112.112" then bl_lawsee = True

 

--엔코딩된 문서를 다시 풀어주는 함수

--아래함수는 어디선가 퍼다 쓴 것인데 기억이 안남...ㄳㄳ;;;
Function FnURLDecode(sStr)

    Dim sRet, reEncode, sChar
  Dim i
 
 if isnull(sStr) then
  sStr = ""
 else 
  Set reEncode = New RegExp
  reEncode.IgnoreCase = True
  reEncode.Pattern = "^%[0-9a-f][0-9a-f]$"
  sStr = Replace(sStr, "+", " ")
  sRet = ""

  For i = 1 To Len(sStr)
      sChar = Mid(sStr, i, 3)
      If reEncode.Test(sChar) Then
          If CInt("&H" & Mid(sStr, i + 1, 2)) < 128 Then
              sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2)))
              i = i + 2
             
          Elseif mid(sStr, i+3, 1) ="%" then
              sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2) & Mid(sStr, i + 4, 2)))
              i = i + 5
         
          else
     sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2) & "00") + asc(mid(sStr,i+3,1)))
     i = i + 3

'이부분이 중요하다.

' 기존 urldecode함수가 몇 몇 글자들에서 에러를 내는 이유는 3바이트로 인코딩 되어있는 부분이 있기 때문. ascII로 변형되어 인코딩 된 부분이 존재한다.
    
          End If
      Else
          sRet = sRet & Mid(sStr, i, 1)
      End If
  Next
 end if
    FnURLDecode = sRet

End Function