0

私は通常、PHPを使用してWebサイトを開発しました。しかし、クライアントが既に Web サイトを持っているため、ASP Classic を使用する必要があり、Web サイトを保守する必要があります。私はすでにすべてのウェブサイトを新しいホスティングに移動しています。しかし、このコードにはエラーがあります:

cPath=getPathName(Server.mappath(Request.ServerVariables("PATH_INFO")))

エラーメッセージは次のとおりです。

Microsoft VBScript ランタイム エラー '800a000d'

タイプの不一致: 'getPathName'

getNameコード呼び出し時の一部エラー表示。

どうすればいいのか教えてください。

4

1 に答える 1

1

私が知る限り、従来の ASP または VBScript には、PHPgetPathName()および関数に相当するものはありません。getName()

文字列が与えられたときの意味を理解できgetPathName()ませんでした。実際には存在しないと思いますので、次のようにしてください。

cPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))

また、変数には、現在実行中の ASP ファイルへの完全な物理パスが含まれます。

カスタム関数をgetName()書くことができます:

Function GetOnlyName(filePath)
    Dim slashIndex
    slashIndex = InStrRev(filePath, "\")
    If slashIndex<1 Then
        slashIndex = InStrRev(filePath, "/")
    End If
    If slashIndex>0 Then
        ExtractFileName = Mid(filePath, slashIndex + 1, Len(filePath) - slashIndex + 1)
    Else  
        ExtractFileName = filePath
    End If
End Function

次に、次のように使用します。

cName = GetOnlyName(Server.MapPath(Request.ServerVariables("PATH_INFO")))

また、変数には ASP ファイルの名前のみが含まれます。

記録として、Type Mismatch エラーの混乱を避けるために、これを常にスクリプトの先頭に置きます。

Option Explicit

Dim次に、上記の関数のように、常にステートメントを使用してすべての変数を宣言します。これを使用getPathNameすると、より意味のある「変数未定義」エラーが発生します。

于 2012-11-15T08:18:52.543 に答える