---
title: "Querystring"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/117296-querystring"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Riffles"
published: "2004-12-03T23:30:27.000Z"
updated: "2004-12-04T16:30:02.000Z"
replies: 12
views: 310
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/117296-querystring"
---

# Querystring

## #1 — Riffles, 2004-12-03T23:30Z

Så här plockar jag ut värdena från min tabell:

```
Visa = Request.Querystring("visa")
SQL = "SELECT * FROM spelschema WHERE sort ='" & Visa & "'ORDER BY datum DESC"
```

Länkarna är dessa:

```
<a href="spelschema.asp?visa=s&visa=t" target="main">Alla matcher</a><br>
<a href="spelschema.asp?visa=t" target="main">Träning</a><br>
<a href="spelschema.asp?visa=s" target="main">Serien</a><br>
```

Det blir fel på den översta länken när jag vill visa alla matcher.
Alltså, hur skriver jag när jag har två variabler i en länk?

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

## #2 — Palle, 2004-12-03T23:51Z

En variant: 

```
[red]<a href="spelschema.asp?visa=s&[b]visa2[/b]=t" target="main">Alla matcher</a><br>
<a href="spelschema.asp?visa=t" target="main">Träning</a><br>
<a href="spelschema.asp?visa=s" target="main">Serien</a><br>

...

Visa = trim(Request.Querystring("visa"))
[b]Visa2 = trim(Request.Querystring("visa2"))[/b]

SQL = "SELECT * FROM spelschema WHERE sort = '"& Visa &"' "
If Len(Visa2) > 0 Then SQL = SQL &" AND sort = '"& Visa2 &"' "
SQL = SQL & "ORDER BY datum DESC"[/red]
```

Vill du promt använda samma querystring så kan du använda denna variant a´la *ful-lösning*: 

```
[red]<a href="spelschema.asp?visa=s&visa=t" target="main">Alla matcher</a><br>
<a href="spelschema.asp?visa=t" target="main">Träning</a><br>
<a href="spelschema.asp?visa=s" target="main">Serien</a><br>

...

Visa = trim(Request.Querystring("visa"))
If InStr(Visa, ",") Then
	Visa = Replace(Visa, ",", "' AND sort = '")
End If

SQL = "SELECT * FROM spelschema WHERE sort ='" & Visa & "'ORDER BY datum DESC"[/red]
```

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

## #3 — Riffles, 2004-12-04T00:06Z

När jag provar nån av alternativen så fungerar det inte alls.
Den tar inte nån variabel alls.
Sidan blir bara tom och det kommer inte upp något felmeddelande heller.

Bör man trimma allt när man skickar en Querystring?
Det är iofs bättre att göra det än att inte göra det! :) Allt för att minska tänkbara fel som kan uppstå.

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

## #4 — Palle, 2004-12-04T00:19Z

Ser nu att jag hade kvar url´en till min testsida.. har ändrat det nu.
Kolla så du verkligen hamnar på rätt sida.. :)

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

## #5 — Riffles, 2004-12-04T00:22Z

Hehe, så lätt var det inte, tyvärr...

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

## #6 — Palle, 2004-12-04T00:30Z

Men det fungerade väl innan?

> Sidan blir bara tom och det kommer inte upp något felmeddelande heller.

Är du på rätt sida?
Har du stäng av *Visa egna http-felmeddelande* i din webbläsare?

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

## #7 — Riffles, 2004-12-04T00:34Z

Det fungerade inte alls med nåt av dina exempel på den länken jag hade problem med.
Ja, det är rätt sida.
Ja, det är avstängt, andra felmeddelande kommer upp som det ska :(
Dock inte i detta exempel.

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

## #8 — Riffles, 2004-12-04T00:55Z

Om jag testar första lösningen så blir det så här:

```
<%= visa %> = s' AND sort = ' t
```

  

Förmodligen fel i Replace-funktionen?

```
If InStr(Visa, ",") Then
	Visa = Replace(Visa, ",", "' AND sort = '")
End If
```

Kan inget om Replace så där får man plugga lite o kolla på det senare.

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

## #9 — Palle, 2004-12-04T01:11Z

Japp, då stämmer det. :)
Det enda som man kanske ska ändra på är även replace´a mellanslaget, ex.  

```
[red]If InStr(Visa, ",") Then
	Visa = Replace(Visa, [blue]", "[/blue], "' AND sort = '")
End If[/red]
```

Skriv sedan ut sql-satsen och kolla den istället för bara variablen.
De tester som jag har genomför har fungerat galant.

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

## #10 — Riffles, 2004-12-04T01:21Z

Hm, det borde fungera
Så här ser det ut nu när jag skriver ut SQL:n.

```
SELECT * FROM spelschema WHERE sort ='s' AND sort = 't' ORDER BY datum DESC
```

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

## #11 — fredrik, 2004-12-04T11:04Z

Jag ser även att du inte skyddar dig mot sk "SQL-injection" när du tar emot dina parametrar. Det innebär alltså skydd för att användare inte ska kunna förändra sorterings-parametern för att hämta data från andra tabeller tex.

För att skydda sig mot det måste du i detta fallet byta ut '-tecknet eller ännu hellre använda en parameteriserad fråga.

Du kan läsa mer om SQL-injection i nedanstående artikel:
<http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=29a58b01-ca79-4877-b924-4f5da18d4a2a>

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

## #12 — andreas_lindh, 2004-12-04T11:16Z

Det borde väl vara så här

```
SELECT * FROM spelschema WHERE sort ='s' OR sort = 't' ORDER BY datum DESC
```

Sort kan väl inte ha två olika värden i samma post

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

## #13 — Riffles, 2004-12-04T16:30Z

Tack Palle och Andreas! Nu fungerar det!

Nu ska jag bara ta mig an SQL-injection.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/117296-querystring
