Data binding 经典ASP将输入绑定到变量

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="

我更多的是一个.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>

调光器
调光器,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
也将为空(空),并且在
行中不会写入任何值。现在代码使用=符号来设置值。它修复了错误,但给了我空值。当我不使用=时,它出错的那一行就是我拥有的输入本身的那一行