---
title: "Lägga till http:// om det saknas vid sändning av formulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/179015-lägga-till-http-om-det-saknas-vid-sändning-av-formulär"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "lbs129"
published: "2009-06-16T12:09:16.000Z"
updated: "2009-06-16T14:05:21.000Z"
replies: 7
views: 600
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/179015-lägga-till-http-om-det-saknas-vid-sändning-av-formulär"
---

# Lägga till http:// om det saknas vid sändning av formulär

## #1 — lbs129, 2009-06-16T12:09Z

Hej!

Jag har kodat en gästbok i ASP där ett fält som kan kan fylla i vid postning är hemsida. Problemet är att alla inte skriver http:// framför webbadressen. Det gör att länken till personens hemsida blir <http://www.minadress.se/www.postarenshemsida.se>.

Lägger jag http:// som förifyllt värde i formuläret så kommer det att visas en hemsidelänk även om postaren inte har någon hemsida. Därför har jag tänkt att man i ASP-koden borde kunna kolla om Request.Form("hemsida") inleds med http:// Om det inte är så så läggs det till innan det sparas i databasen. Är det möjligt?

Tack på förhand! :)

Mvh Johan

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

## #2 — StefanBergfeldt, 2009-06-16T12:23Z

Ja det är möjligt.
dim hemsida
hemsida = Request.Form("hemsida")
if lcase(left(hemsida,4))\<\>"http" then hemsida = "http://" & hemsida

Det gör att det fungerar med både http och https (anger man inget antas http). Dock fungerar inte ftp och andra protokoll, men det gör väl inget?

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

## #3 — lbs129, 2009-06-16T12:36Z

Tack så mycket! Det fungerade alldeles utmärkt! :D

Mvh Johan

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

## #4 — nitro2k01, 2009-06-16T13:11Z

Ett litet tips, använd Server.HTMLEncode på värden du skriver ut för att hindra folk från att göra elaka saker.

```
<a href="<%= Server.HTMLEncode(hemsida) %>"><%= Server.HTMLEncode(namn) %></a>
...
Kommentar: <%= Server.HTMLEncode(kommentar) %></a>
```

Utan HTMLEncode sådan kod skulle jag t ex kunna skriva in följande "hemside-adress":

```
http://www.google.se" onmouseover="alert('Hej')
```

Pröva att skriva detta som adress till ditt nuvarande skript!
Detta skrivs då ut som 

```
<a href="[u]http://www.google.se" onmouseover="alert('Hej')[/u]">
```

 (Min sträng är understruken för att förtydliga.)
Denna kod visar bara en alert-ruta när man drar musen över den, men det går att göra långt mer elaka saker.
Med HTMLEncode skrivs det istället ut som

```
<a href="[u][url]http://www.google.se&quot;[/url] onmouseover=&quot;alert('Hej')[/u]">
```

vilket visserligen är "nonsens", men faran är undanröjd.

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

## #5 — lbs129, 2009-06-16T13:20Z

Tack för tipset! :)

Jag hade satt Server.HTMLEncode på själva meddelandetexten men inte på hemsideadressen. Det är fixat nu!

Här kan ni se hur gästboken ser ut just nu om ni vill (hela sidan är en beta-version än så länge):
<http://test.jwebb.se/gastbok.asp>

Alla inlägg nu är bara test och exempel. Koden som jag använder för att skriva ut inläggen är denna:

```
<div class="inlagg">
	<div class="infocontainer">
		<div class="namnplats"><%=Server.HTMLEncode(RecSet("namn"))%><% IF RecSet("bori") <> "" THEN %>&nbsp;i&nbsp;<%=Server.HTMLEncode(RecSet("bori"))%><% END IF %></div>
		<div class="lankar"><% IF RecSet("hemsida") <> "" THEN %><a href="<%=Server.HTMLEncode(RecSet("hemsida"))%>" target="_blank"><img src="images/house.png" alt="<%=Server.HTMLEncode(RecSet("namn"))%>:s hemsida"></a><% END IF %><% IF RecSet("visaepost") = "ja" THEN %>&nbsp;&nbsp;<a href="mailto:<%=Server.HTMLEncode(RecSet("epost"))%>" target="_blank"><img src="images/email.png" alt="<%=Server.HTMLEncode(RecSet("namn"))%>:s e-post"></a><% END IF %></div>
		<div class="datum"><%=RecSet("datum")%></div>
	</div>
	<div class="meddelande">
	<% Dim meddelande
	meddelande = RecSet("meddelande")
	meddelande = Server.HTMLEncode(meddelande)
	meddelande = Replace(meddelande,":)","<img src='images/emoticon_smile.png'>")
	meddelande = Replace(meddelande,":D","<img src='images/emoticon_grin.png'>")
	meddelande = Replace(meddelande,":P","<img src='images/emoticon_tongue.png'>")
	meddelande = Replace(meddelande,":(","<img src='images/emoticon_unhappy.png'>")
	meddelande = Replace(meddelande,";)","<img src='images/emoticon_wink.png'>")
	Response.Write meddelande %>
	</div>
</div>
```

Tack för hjälpen! :)

Mvh Johan

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

## #6 — StefanBergfeldt, 2009-06-16T13:38Z

Fast borde man inte använda Server.UrlEncode på adressen?

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

## #7 — nitro2k01, 2009-06-16T13:56Z

> **[StefanBergfeldt skrev:](https://www.webforum.nu/p/1471175)**
>
> Fast borde man inte använda Server.UrlEncode på adressen?

Nej. Den funktionen encodar http:// till http%3A%2F%2F vilket blir tokfel i detta fall. Däremot är UrlEncode utmärkt för att skicka med en URL (eller annan data med förbjudna tecken) som parameter till en querystring, typ:

```
<a href="redirect.asp?goto=<%= Server.UrlEncode(hemsida) %>">...</a>
```

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

## #8 — StefanBergfeldt, 2009-06-16T14:05Z

Just det, så är det ja...
Känns som 100 år sedan jag gjorde något i det gamla asp.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/179015-lägga-till-http-om-det-saknas-vid-sändning-av-formulär
