Asp classic 经典ASP getPathName和getName错误

Asp classic 经典ASP getPathName和getName错误,asp-classic,Asp Classic,我通常使用PHP开发网站。但现在我必须使用ASP经典,因为我的客户已经有一个网站,然后我必须维护网站。我已经把所有的网站转移到我的新主机上了。但此代码中存在错误: cPath=getPathName(Server.mappath(Request.ServerVariables(“PATH\u INFO”))) 错误消息是: Microsoft VBScript运行时错误“800a000d” 类型不匹配:“getPathName” 调用getNamecode时会显示一些错误 请帮助我该怎么做。据我

我通常使用PHP开发网站。但现在我必须使用ASP经典,因为我的客户已经有一个网站,然后我必须维护网站。我已经把所有的网站转移到我的新主机上了。但此代码中存在错误:

cPath=getPathName(Server.mappath(Request.ServerVariables(“PATH\u INFO”)))

错误消息是:

Microsoft VBScript运行时错误“800a000d”

类型不匹配:“getPathName”

调用
getName
code时会显示一些错误


请帮助我该怎么做。

据我所知,经典的ASP或VBScript没有与PHP
getPathName()
getName()
函数等效的功能

我无法理解
getPathName()
的含义,当它被赋予一个字符串时,实际上我认为它不存在,所以我只需要:

cPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))
变量将包含当前正在执行的ASP文件的完整物理路径

对于
getName()
您可以编写自定义函数:

函数GetOnlyName(文件路径) 印度洋地黄 slashIndex=InStrRev(文件路径“\”) 如果为0,则 ExtractFileName=Mid(文件路径,slashIndex+1,Len(文件路径)-slashIndex+1) 其他的 ExtractFileName=文件路径 如果结束 端函数 然后像这样使用它:

cName = GetOnlyName(Server.MapPath(Request.ServerVariables("PATH_INFO")))
变量将只包含ASP文件的名称

作为记录,为了避免混淆类型不匹配错误,始终将此项置于脚本之上:

Option Explicit

然后始终使用
Dim
语句声明所有变量,就像上面的函数一样。有了这一点,尝试使用
getPathName
将产生“variable undefined”错误,这一错误更有意义。

您能否再添加一点,例如在声明cPath的地方。-类型不匹配是当您试图将一种类型的值填充到另一种类型的变量中时发生的一般错误。@Robuust类型不匹配的原因是
getPathName
是由VBScript自动创建的,但类型为空。由于他试图将其用作函数,因此导致类型不匹配。脚本语言的奇迹!