.Net 녀석이 더 많지만, 현재 작업하고있는 사이트에는 기존 클래식 ASP 페이지가 일부 있습니다. 양식 중 하나에서 우리는과 같이 페이지의 시작 부분에 약간의 VBScript를 만든 변수로 설정하고 설정 얻을 숨겨진 입력의 몇 가지있다 :변수에 대한 기본 ASP 바인드 입력
<input name="referer" type="hidden" value="<%= oReferer %>" />
변수는 다음의 VBScript로 설정되어 있는지 :
<script type="text/vbscript" language="vbscript" runat="server">
dim oReferer
dim origReferer, arrRefer1, arrRefer2
origReferer = "self"
'response.Write("referer - " & Request.ServerVariables("HTTP_REFERER"))
'response.End()
if not Request.ServerVariables("HTTP_REFERER") = "" then
if not Request.ServerVariables("HTTP_COOKIE") = "" then
if not len(Request.Cookies("OrigReferer")) > 0 then
arrRefer1 = split(Request.ServerVariables("HTTP_REFERER"),"//")
if UBound(arrRefer1) > 0 then
arrRefer2 = split(arrRefer1(1), "/")
if UBound(arrRefer2) > 0 then
origReferer = arrRefer2(0)
end if
end if
Response.Cookies("OrigReferer") = origReferer
Response.Cookies("OrigReferer").Expires = DateAdd("d", 120, Date())
else
oReferer = Request.Cookies("OrigReferer")
end if
else
oReferer = "no cookies"
end if
else
oReferer = "self"
end if
<script>
이 코드는 대부분 정상적으로 작동합니다. 이 코드를 새 버전의 양식에서 사용하려고하면 두 가지 문제가 발생합니다. 먼저 입력 자체가 전혀 설정되지 않습니다. 왜 코드가 기본값을 가지고 있는지 항상 확신 할 수 없으므로 항상 적어도 "자체"가되어야합니다. 두 번째 문제는 나에 의해 작성되지 않은 원래 코드가 < % oReferer %>을 (를) 사용하여 값을 설정했다는 것입니다. 이제 VBScript 오류 인 "형식이 일치하지 않습니다."가 나타납니다.
내가 말한 것처럼 .Net 녀석과 .Net에서 이것을 해결하는 것은 문제가되지 않습니다. 클래식 ASP도 잘 모르겠다. 닷넷으로 바꾸고 싶지만 지금 당장은이 특별한 형식이 될 수는 없으므로 이것을 이해하는 데 도움이 될 것입니다.
오류가 발생한 줄을 알려 주어야합니다. 코드에서 강조 표시 할 수 있습니까? –
'<% oReferer %>'는 아마도'<% = oReferer %>'일 필요가 있습니다. (즉, 등호가 붙어 있습니다.) –
네, 분명히'= '기호가 필요합니다. 'oReferer = Request.Cookies ("OrigReferer") & "**"'행 값에 뭔가를 추가하여이 행을 실행하는지보십시오. OrigReferer 쿠키가 비어 있으면'oReferer'도 공백 (비어 있음)이되며'<% = oReferer %> '행에는 값이 기록되지 않습니다. – Edelcom