Что я делаю не так в ASP - PullRequest
       0

Что я делаю не так в ASP

1 голос
/ 11 октября 2011

IN php Я использую это

'if(!f || !f2)

Теперь я конвертирую этот код в ASP, как это

If Not f OR Not f2 Then

, но выдает ошибку: -

Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method

Что я могу сделать сейчас, я новичок в ASP

Ответы [ 3 ]

2 голосов
/ 11 октября 2011

Поскольку f и f2 являются объектами, я думаю, что ASP предполагает, что они имеют свойства по умолчанию, которые вы пытаетесь проверить в

If Not f OR Not f2 Then

, поэтому вы получаете это сообщение об ошибке(например, если свойство по умолчанию было Name, вы на самом деле тестировали бы If Not f.Name OR Not f2.Name Then).

Что вы, вероятно, хотите сделать, это проверить, являются ли они недействительными объектами, что вы можете сделать с помощью

If (f Is Nothing) OR (f2 Is Nothing) Then 
1 голос
/ 11 октября 2011

Похоже, что вам действительно нужно проверить, существуют ли эти файлы - классический ASP имеет логику, отличную от PHP.

Поэтому попробуйте использовать этот код вместо:

Dim fp1, f, f2
Dim vid, vkey
Dim enc, enc1, enc2
set fp1 = Server.CreateObject("Scripting.FileSystemObject")
If fp1.FileExists(vid_file) And fp1.FileExists(vkey_file) Then
    set f = fp1.OpenTextFile(vid_file, 1, true)
    set f2=fp1.OpenTextFile(vkey_file, 1, true)
    vid = Trim(f.ReadLine)
    vkey = Trim(f2.ReadLine)
    f.Close
    f2.Close
    Set f = Nothing
    Set f2 = Nothing

    enc1 = hex_sha1(vid)
    enc2 = hex_sha1(vkey)
    enc = enc1 & enc2
Else  
    Response.Write "Vendor authentication failed."
End If
0 голосов
/ 11 октября 2011

Вам может понадобиться IsObject () .

Попробуйте

If Not IsObject(f1) Or Not IsObject(f2) Then ...
...