Asp classic 经典ASP-奇怪的类型不匹配错误

Asp classic 经典ASP-奇怪的类型不匹配错误,asp-classic,mismatch,Asp Classic,Mismatch,下面是模拟问题的示例代码: functs.asp <% Function SecureStr(Str) Dim Res Res = Trim(Str) If (Res <> "") Then Res = Replace(Res, "'", "") Res = Replace(Res, ";", "") Res = Replace(Res, "=", "") End If SecureStr = Res End Function %&g

下面是模拟问题的示例代码:

functs.asp

<%
Function SecureStr(Str)
  Dim Res
  Res = Trim(Str)
  If (Res <> "") Then
    Res = Replace(Res, "'", "")
    Res = Replace(Res, ";", "")
    Res = Replace(Res, "=", "")
  End If
  SecureStr = Res
End Function
%>
拜托,有人能帮我吗?我真的不知道发生了什么


谢谢

这并不奇怪,但却是服务器的预期行为。事实上执行

从第节:

如果通过使用#include将文件包括在调用页中,则 已执行。asp将不使用它。例如,您可能有一个子例程 在调用页中包含的文件中,但执行的.asp 将无法识别子例程名称。您必须将该文件包括在 需要子例程的每个已执行的.asp


@帕鲁巴,不客气。没有太多的选择。我准备了一个通用的asp文件,包括所有的函数和asp页面中需要的声明,由
Server.Execute执行
.Kul Tigin,你的意思是用Server.Execute(“functs.asp”)替换#include file=“functs.asp”?不。正如文档所说,必须在每个需要子例程的已执行.asp中包含该文件
#例如,在buy.asp(等等)中包含file=“functs.asp”
。我已经需要在main.asp中包含functs.asp,以及在我使用服务器打开的每个文件中。执行。。。许多重复的信息。。。但它是有效的,谢谢你!
<%
Option Explicit
Dim Dept
Dept = Request.QueryString("d")
%>
<html>
<body>
<%=Server.Execute(Dept & ".asp")%>
</body>
</html>
<!--#include file="functs.asp"-->
<%
Dim Name
Name = SecureStr(Request.Form("name"))
%>
BUY CONTENT
<%
Option Explicit
Dim Dept
Dept = Request.QueryString("d")
%>
<!--#include file="functs.asp"-->
<html>
<body>
<%=Server.Execute(Dept & ".asp")%>
</body>
</html>
<%
Dim Name
Name = SecureStr(Request.Form("name"))
%>
BUY CONTENT
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'SecureStr'
/buy.asp, line 3