我有一个警报框,如果我当前在测试数据库中,我希望警报框与实时数据库具有不同的文本。
所以我声明了一个名为 isTestDb
的变量并将其设置为 True
,但我不断收到这个烦人的错误:
Microsoft VBScript compilation error '800a0411'
Name redefined
myfiles/conn_open.asp, line 12
Dim isTestDb
----^
这是我的简单代码,它位于包含中,其级别比我进行条件检查的位置高得多,我假设这不是问题。
Dim isTestDb
isTestDb = True
-- Much Later in another file somehwere
If isTestDb Then
Response.Write("<h1>It is set to True</h1>")
Response.End
Else
Response.Write("<h1>It is set to False</h1>")
Response.End
End If
我已经检查了我所有的工作目录,我确定该变量没有在其他地方以相同的名称设置,我什至为变量尝试了不同的名称并得到了完全相同的错误。
就我而言,这是因为我在.asp文件中使用了两次引用同一文件:
<!--#include file="myFile.asp">
引用的文件包含声明,因此第二个声明与第一个声明冲突
发生这种情况是因为变量 isTestDb
已经在另一个页面中定义。
为什么,但是当我删除Dim isTestDb
行时,现在一切都按预期工作!! :/
是因为您正在包含已包含在其他包含文件中的文件。
例如:文件 a.asp 包括 x.asp。在您的主文件中,您包括以下内容:
<!--#include file="a.asp">
<!--#include file="x.asp">