Data binding 经典ASP将输入绑定到变量
我更多的是一个.Net的家伙,但我目前工作的网站有一些遗留的经典ASP页面。在其中一个表单中,我们有两个隐藏输入,这些输入设置为某些VBScript在页面开头创建和设置的变量,如下所示:Data binding 经典ASP将输入绑定到变量,data-binding,forms,binding,asp-classic,Data Binding,Forms,Binding,Asp Classic,我更多的是一个.Net的家伙,但我目前工作的网站有一些遗留的经典ASP页面。在其中一个表单中,我们有两个隐藏输入,这些输入设置为某些VBScript在页面开头创建和设置的变量,如下所示: <input name="referer" type="hidden" value="<%= oReferer %>" /> 使用以下VBScript设置该变量: <script type="text/vbscript" language="vbscript" runat="
<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>
调光器
调光器,arrrefere1,arrrefere2
origReferer=“self”
'response.Write(“referer-”&Request.ServerVariables(“HTTP\u referer”))
'response.End()
如果不是Request.ServerVariables(“HTTP\u REFERER”)=“”那么
如果不是Request.ServerVariables(“HTTP_COOKIE”)=“”则
如果len(Request.Cookies(“OrigReferer”)>0,则
arrefere1=split(Request.ServerVariables(“HTTP\u REFERER”),“/”)
如果UBound(arrefere1)>0,则
arrrefere2=拆分(arrrefere1(1),“/”)
如果UBound(arrefere2)>0,则
Origrefer=ArrRefere2(0)
如果结束
如果结束
Response.Cookies(“OrigReferer”)=OrigReferer
Response.Cookies(“OrigReferer”).Expires=DateAdd(“d”,120,Date())
其他的
Oregrefer=Request.Cookies(“Origrefer”)
如果结束
其他的
oReferer=“没有饼干”
如果结束
其他的
oReferer=“self”
如果结束
这段代码在大多数情况下都可以正常工作。当我尝试在表单的较新版本中使用此代码时,我遇到了两个问题。首先,输入本身根本没有设置。我不知道为什么代码有默认值,所以它至少应该是“self”。第二个问题是,不是我写的原始代码使用来设置值。当我现在这样做时,会出现一个VBScript错误,“类型不匹配”
就像我说的,我是一个.Net的人,在.Net中解决这个问题不是问题。我也不知道经典的ASP,我被难倒了。我很想改用.Net,但现在无法使用这个特殊的表单,所以任何帮助都会很好 0那么
<%
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
%>
arrefere1=split(Request.ServerVariables(“HTTP\u REFERER”),“/”)
如果UBound(arrefere1)>0,则
arrrefere2=拆分(arrrefere1(1),“/”)
如果UBound(arrefere2)>0,则
Origrefer=ArrRefere2(0)
如果结束
如果结束
Response.Cookies(“OrigReferer”)=OrigReferer
Response.Cookies(“OrigReferer”).Expires=DateAdd(“d”,120,Date())
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
''//问题是你不是
''//在此处设置oReferer变量
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
其他的
Oregrefer=Request.Cookies(“Origrefer”)
如果结束
其他的
oReferer=“没有饼干”
如果结束
其他的
oReferer=“self”
如果结束
response.write“------------
”
response.write“oReferer=“+oReferer
%>
0然后
arrefere1=split(Request.ServerVariables(“HTTP\u REFERER”),“/”)
如果UBound(arrefere1)>0,则
arrrefere2=拆分(arrrefere1(1),“/”)
如果UBound(arrefere2)>0,则
Origrefer=ArrRefere2(0)
如果结束
如果结束
Response.Cookies(“OrigReferer”)=OrigReferer
Response.Cookies(“OrigReferer”).Expires=DateAdd(“d”,120,Date())
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
''//问题是你不是
''//在此处设置oReferer变量
''// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
其他的
Oregrefer=Request.Cookies(“Origrefer”)
如果结束
其他的
oReferer=“没有饼干”
如果结束
其他的
oReferer=“self”
如果结束
response.write“------------
”
response.write“oReferer=“+oReferer
%>
它应该告诉您发生错误的行,您能在代码中突出显示这一行吗?
可能需要
(即带有等号)是的,您肯定需要=
号。尝试在oReferer=Request.Cookies(“OrigReferer”)&“**”
行值中添加一些内容,以便查看是否正在执行此行。如果Origrefer cookie为空,Oregrefer
也将为空(空),并且在
行中不会写入任何值。现在代码使用=符号来设置值。它修复了错误,但给了我空值。当我不使用=时,它会出错的那一行就是我在原始帖子中输入的那一行。创建和设置oReferer的代码似乎没有问题,但将其设置为值时存在一些不匹配。几乎和oReferer一样,他并没有被视为一根弦。最后,执行Request.Cookies(“OrigReferer”)和“**”的想法仍然会在输入上给我一个空值。这个问题对我来说真的很奇怪。它应该告诉你发生了什么错误,你能在代码中突出显示它吗?
可能需要
(即带有等号)是的,你肯定需要=
号。尝试在oReferer=Request.Cookies(“OrigReferer”)&“**”
行值中添加一些内容,以便查看是否正在执行此行。如果Origrefer cookie为空,Oregrefer
也将为空(空),并且在
行中不会写入任何值。现在代码使用=符号来设置值。它修复了错误,但给了我空值。当我不使用=时,它出错的那一行就是我拥有的输入本身的那一行