Avatar billede Slettet bruger
19. august 2002 - 01:18 Der er 10 kommentarer og
1 løsning

Fejl i kode

Hej eksperte...

jeg har denne kode:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/erotik/erotik.mdb")

strSQL = "SELECT * FROM erotik where kategori = '" & Request.Querystring("mode") & "'"
set rs = conn.execute(strSQL)



' Array med URL'er, som skal chekkes
Do While Not rs.EOF
  arrURLS = arrURLS & "," & rs("link")
  arrIDS = arrIDS & "," & rs("ID")
  rs.MoveNext
Loop
arrURLS = Split(arrURLS,",")
arrIDS = Split(arrIDS,",")

' Array med HTTP header koder
arrHTTPcode = Array("100", "101", "200", "201", "202", "203", "204", "205", "206", "300", "301", "302", "303", "304", "305", "307", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "500", "501", "502", "503", "504", "505")
' Array med HTTP header kodernes forklaringer
arrHTTPtext = Array("Continue", "Switching Protocols", "OK", "Created", "Accepted", "Non-Authoritative Information", "No Content", "Reset Content", "Partial Content", "Multiple Choices", "Moved Permanently", "Found", "See Other", "Not Modified", "Use Proxy", "Temporary Redirect", "Bad Request", "Unauthorized", "Payment Required", "Forbidden", "Not Found", "Method Not Allowed", "Not Acceptable", "Proxy Authentication Required", "Request Time-out", "Conflict", "Gone", "Length Required", "Precondition Failed", "Request Entity Too Large", "Request-URI Too Large", "Unsupported Media Type", "Requested range not satisfiable", "Expectation Failed", "Internal Server Error", "Not Implemented", "Bad Gateway", "Service Unavailable", "Gateway Time-out", "HTTP Version not supported")
' Gennemløb Array med URL'er
For intURL = 0 to Ubound(arrURLS)
  Set HttpObj = Server.CreateObject("AspHTTP.Conn")
  HTTPObj.Url = arrURLS(intURL)
  HTTPObj.GetURL

  For intCode = 0 to Ubound(arrHTTPcode)
    If Instr(HttpObj.Response,arrHTTPcode(intCode)) Then
      strResponse = arrHTTPtext(intCode)
      Exit For
    End if
  Next
  If strResponse <> "OK" Then
    Response.Write "<p>" & arrIDS(intURL) & " - " & arrURLS(intURL) & " - " & strResponse & "</p>"
  End If
  strResponse = ""
Next
%>


men den giver fejlen: invalid url i linie 26 som er:

  HTTPObj.Url = arrURLS(intURL)

jeg kan ikke hitte ud af det. håber i kan / vil.

mvh.
Questis.dk
Avatar billede in2designs Nybegynder
19. august 2002 - 03:12 #1
prøv nu..

HTTPObj.Url = arrURLS("intURL")
eller
HTTPObject.Url = arrURLS("intURL")
Avatar billede zeptic Nybegynder
19. august 2002 - 10:14 #2
Du skal skrive:

HttpObj.Url = arrURLS(intURL)

og linie 27 skal rettes til:

HttpObj.GetURL


Hvis du som det første i din kode skrev
  option explicit
og dim'er alle dine variable vil du ikke komme ud for denne type fejl.
Avatar billede Slettet bruger
19. august 2002 - 10:15 #3
så får jeg bare en ny fejl: Type mismatch: '[string: "intURL"]'
Avatar billede Slettet bruger
19. august 2002 - 10:16 #4
prøver lige &:-)
Avatar billede Slettet bruger
19. august 2002 - 10:25 #5
hvisd koden nu ser sådanne ud:

<%
option explicit
Dim conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/erotik/erotik.mdb")

Dim strSQL
strSQL = "SELECT * FROM erotik where kategori = '" & Request.Querystring("mode") & "'"
Dim rs
set rs = conn.execute(strSQL)



' Array med URL'er, som skal chekkes
Do While Not rs.EOF

  Dim arrurls
  arrURLS = arrURLS & "," & rs("link")

  Dim arrIDS
  arrIDS = arrIDS & "," & rs("ID")
  rs.MoveNext
Loop
arrURLS = Split(arrURLS,",")
arrIDS = Split(arrIDS,",")

Dim arrHTTPcode
' Array med HTTP header koder
arrHTTPcode = Array("100", "101", "200", "201", "202", "203", "204", "205", "206", "300", "301", "302", "303", "304", "305", "307", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "500", "501", "502", "503", "504", "505")

Dim arrHTTPtext
' Array med HTTP header kodernes forklaringer
arrHTTPtext = Array("Continue", "Switching Protocols", "OK", "Created", "Accepted", "Non-Authoritative Information", "No Content", "Reset Content", "Partial Content", "Multiple Choices", "Moved Permanently", "Found", "See Other", "Not Modified", "Use Proxy", "Temporary Redirect", "Bad Request", "Unauthorized", "Payment Required", "Forbidden", "Not Found", "Method Not Allowed", "Not Acceptable", "Proxy Authentication Required", "Request Time-out", "Conflict", "Gone", "Length Required", "Precondition Failed", "Request Entity Too Large", "Request-URI Too Large", "Unsupported Media Type", "Requested range not satisfiable", "Expectation Failed", "Internal Server Error", "Not Implemented", "Bad Gateway", "Service Unavailable", "Gateway Time-out", "HTTP Version not supported")

Dim intURL
' Gennemløb Array med URL'er
For intURL = 0 to Ubound(arrURLS)

Dim httpObj
  Set HttpObj = Server.CreateObject("AspHTTP.Conn")
  HttpObj.Url = arrURLS(intURL)
  HttpObj.GetURL

  For intCode = 0 to Ubound(arrHTTPcode)
    If Instr(HttpObj.Response,arrHTTPcode(intCode)) Then
      strResponse = arrHTTPtext(intCode)
      Exit For
    End if
  Next
  If strResponse <> "OK" Then
    Response.Write "<p>" & arrIDS(intURL) & " - " & arrURLS(intURL) & " - " & strResponse & "</p>"
  End If
  strResponse = ""
Next
%>

får jeg samme fejl
Avatar billede zeptic Nybegynder
19. august 2002 - 10:50 #6
Hvis du nu udskriver indholdet af dit array arrURLS inden du bruger elementerne i det, så kan du formentlig se hvad problemet er.
Avatar billede Slettet bruger
19. august 2002 - 11:01 #7
hvis den udskrives lige efter den er hentet bvirker det okay.... men hvis det gøres længere ned i dokumentet melder den fejl: Type mismatch
Avatar billede zeptic Nybegynder
19. august 2002 - 11:20 #8
Kan jeg se koden du bruger til at udskrive med?
Avatar billede Slettet bruger
19. august 2002 - 11:22 #9
her er det:

<%
option explicit
Dim conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/erotik/erotik.mdb")

Dim strSQL
strSQL = "SELECT * FROM erotik where kategori = '" & Request.Querystring("mode") & "'"
Dim rs
set rs = conn.execute(strSQL)



' Array med URL'er, som skal chekkes
Do While Not rs.EOF

  Dim arrurls
  arrURLS = arrURLS & "," & rs("link")
  Response.write "" & (arrURLS) & ""
  Dim arrIDS
  arrIDS = arrIDS & "," & rs("ID")
  rs.MoveNext
Loop
arrURLS = Split(arrURLS,",")
arrIDS = Split(arrIDS,",")

Dim arrHTTPcode
' Array med HTTP header koder
arrHTTPcode = Array("100", "101", "200", "201", "202", "203", "204", "205", "206", "300", "301", "302", "303", "304", "305", "307", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "500", "501", "502", "503", "504", "505")

Dim arrHTTPtext
' Array med HTTP header kodernes forklaringer
arrHTTPtext = Array("Continue", "Switching Protocols", "OK", "Created", "Accepted", "Non-Authoritative Information", "No Content", "Reset Content", "Partial Content", "Multiple Choices", "Moved Permanently", "Found", "See Other", "Not Modified", "Use Proxy", "Temporary Redirect", "Bad Request", "Unauthorized", "Payment Required", "Forbidden", "Not Found", "Method Not Allowed", "Not Acceptable", "Proxy Authentication Required", "Request Time-out", "Conflict", "Gone", "Length Required", "Precondition Failed", "Request Entity Too Large", "Request-URI Too Large", "Unsupported Media Type", "Requested range not satisfiable", "Expectation Failed", "Internal Server Error", "Not Implemented", "Bad Gateway", "Service Unavailable", "Gateway Time-out", "HTTP Version not supported")



Dim intURL
' Gennemløb Array med URL'er
For intURL = 0 to Ubound(arrURLS)

Dim httpObj
  Set HttpObj = Server.CreateObject("AspHTTP.Conn")
  HttpObj.Url = arrURLS(intURL)
  HttpObj.GetURL

  For intCode = 0 to Ubound(arrHTTPcode)
    If Instr(HttpObj.Response,arrHTTPcode(intCode)) Then
      strResponse = arrHTTPtext(intCode)
      Exit For
    End if
  Next
  If strResponse <> "OK" Then
    Response.Write "<p>" & arrIDS(intURL) & " - " & arrURLS(intURL) & " - " & strResponse & "</p>"
  End If
  strResponse = ""
Next
%>
Avatar billede zeptic Nybegynder
19. august 2002 - 12:19 #10
Du forsøger at udskrive arrayet. Du skal udskrive elementerne i arrayet:

dim i
For i = 0 to Ubound(arrURLS)
  Response.Write "" & i & ": " & arrURLS(i) & "<br>"
Next

---------------
Jeg tror nu jeg ved hvad der er galt. Når du splitter arrURLS gemmer du resultatet i arrURLS. Før splitning er arrURLS en streng og efter splitning er det et array. arrURLS kan ikke pludselig skifte type. Omdøb derfor enten strengen eller arrayet.
Avatar billede Slettet bruger
28. august 2002 - 11:41 #11
fandt aldrig det specifikke problem men tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester