我更像是一个.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>
此代码在大多数情况下都可以正常运行。当我尝试在更新版本的表单中使用此代码时,我遇到了两个问题。首先,输入本身根本没有设置。我不确定为什么因为代码确实有默认值所以它应该始终至少是“自我”。第二个问题是原始代码,不是由我编写的,使用&lt;%oReferer%&gt;设置值。当我这样做时,我得到一个VBScript错误,“类型不匹配”。
就像我说我是一个.Net的人,在.Net中解决这个问题不是问题。我也不知道经典ASP,我很难过。我很乐意改为.Net但现在不能用于这种特殊的形式,所以任何有助于解决这个问题的帮助都会很棒。
答案 0 :(得分:1)
<%
dim oReferer
dim origReferer, arrRefer1, arrRefer2
origReferer = "self"
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())
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
''// The problems is that you are not
''// setting the oReferer variable here
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
else
oReferer = Request.Cookies("OrigReferer")
end if
else
oReferer = "no cookies"
end if
else
oReferer = "self"
end if
response.write "----------<br>"
response.write "oReferer=" + oReferer
%>