---
title: "Kontrollera om URL existerar?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/64343-kontrollera-om-url-existerar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SilvioF"
published: "2003-01-09T21:34:18.000Z"
updated: "2003-01-10T13:56:00.000Z"
replies: 8
views: 661
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/64343-kontrollera-om-url-existerar"
---

# Kontrollera om URL existerar?

## #1 — SilvioF, 2003-01-09T21:34Z

Finns det något sätt att, genom ASP, kontrollera om en viss URL, t.ex <http://www.kalleshemsida.nu,> verkligen finns?

Anledningen är att jag vill förhindra att folk lägger in idiotiska texter och länkar som inte fungerar i ett länk-register som jag håller på att bygga till en sida.

Om det är någon som har lite exempelkod eller en länk till något ställe där man kan läsa om hur man gör så är jag väldigt tacksam.

Permalänk: https://www.webforum.nu/p/64343

## #2 — SPiN, 2003-01-09T21:44Z

Genom att använda XMLHTTP borde det fungera smidigt:

```
Dim objXMLHTTP
set objXMLHTTP = Server.CreateObject( "MSXML2.XMLHTTP" ) 
objXMLHTTP.Open "GET", "http://www.kalleshemsida.nu", False
objXMLHTTP.Send

Dim sReturned
sReturned = objXMLHTTP.getAllResponseHeaders()

set objXMLHTTP = Nothing

If InStr( sReturned, "OK" ) > 0 Then
     ' Fanns
Else
     ' Fanns inte
End If
```

Eller något liknande. ;)

Permalänk: https://www.webforum.nu/p/908612

## #3 — SilvioF, 2003-01-09T21:57Z

Hmm... Den där funktionen returnerar felmeddelandet "0x800C0005: URL Resouce not found" om sidan inte finns, vilket i och för sig stämmer, men den hoppar in i "Finns inte"-delen at kontrollen om sidan finns.

Permalänk: https://www.webforum.nu/p/908617

## #4 — SPiN, 2003-01-09T22:09Z

OK, då var det ju inte alls som jag trodde att det skulle fungera... :l

Permalänk: https://www.webforum.nu/p/908619

## #5 — Viktor, 2003-01-09T22:13Z

Kanske fungerar om man lägger till en "On Error Goto XX" eller "On Error Resume Next"?

/Viktor

Permalänk: https://www.webforum.nu/p/908621

## #6 — trexter, 2003-01-10T06:24Z

```
On Error Resume Next
Dim objXMLHTTP
set objXMLHTTP = Server.CreateObject( "MSXML2.XMLHTTP" ) 
objXMLHTTP.Open "GET", "http://www.kalleshemsida.nu", False
objXMLHTTP.Send

Dim sReturned
sReturned = objXMLHTTP.getAllResponseHeaders()

set objXMLHTTP = Nothing

If Err.Number <> "" Then
    'Fel inträffade
Else
   'Fel inträffade förhoppningsvis inte
End If
Err.Clear
On Error GoTo 0
```

 :)

Permalänk: https://www.webforum.nu/p/908764

## #7 — CoreX, 2003-01-10T11:23Z

Liten korrigering...

```
If Err.Number <> "0" Then
    'Fel inträffade
Else
   'Fel inträffade förhoppningsvis inte
End If
```

Permalänk: https://www.webforum.nu/p/908891

## #8 — @nders, 2003-01-10T11:25Z

Då passar väl jag på att korrigera korrigeringen. ;) 

Err.Number returnerar alltid ett tal.

```
If Err.Number <> 0 Then
```

Mvh,

Permalänk: https://www.webforum.nu/p/908893

## #9 — niko, 2003-01-10T13:56Z

Innan man ger sig på en sån här sak så ska man nog tänka igenom vad som menas med att en URL "finns".

Om man funderar efter en stund så finns det rätt många fall att ta hänsyn till och hantera.

1\. Vi får ett DNS-fel då vi försöker resolva hostnamnet. Är detta temporärt eller finns sidan inte?

2\. Servern svarar inte alls på port 80. Är detta temporärt eller finns sidan inte?

3\. Servern svarar och returnerar statuskod 404. Saken är klar sidan finns inte.

4\. Servern svarar och returnerar en annan statuskod tex 500 (Server Error). Är detta temporärt eller finns sidan inte?

5\. Servern svarar och returnerar en statuskod i intervallet 300-399  (Object moved). Vad gör vi då? Ska vi följa redirecten och kolla om *den* sidan finns? Ska vi byta URL:en i databasen?

6\. Servern svarar och returnerar statuskod 200 OK. Finns sidan helt säkert då? Nej inte alls, det kan vara en serverspecifik 404-sida. Hur gör vi då? Ska vi scanna HTML-koden och försöka gissa vad där står? Om det är en bild? Ska vi försöka läsa vad det står på bilden?

osv ..

Anledningen till att koden ovan inte fungerar är nog att *getAllResponseHeaders* inte innehåller serverns statuskod borde vara bättre att titta på *objXMLHTTP.Status*

Permalänk: https://www.webforum.nu/p/908997

---

Tråden på webben: https://www.webforum.nu/amne/asp/64343-kontrollera-om-url-existerar
