Я скорее парень .Net, но на сайте, над которым я сейчас работаю, есть несколько классических ASP-страниц.В одной из форм у нас есть пара скрытых входных данных, которые устанавливаются в переменные, создаваемые и устанавливаемые некоторым VBScript в начале страницы, например так:
<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 не проблема.Я не знаю Classic ASP, и я в тупике.Я хотел бы перейти на .Net, но не могу для этой конкретной формы прямо сейчас, поэтому любая помощь, чтобы понять это было бы здорово.