---
title: "Else-sats som vägrar att _inte_ köras"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/14015-else-sats-som-vägrar-att-inte-köras"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SPiN"
published: "2002-01-24T19:38:00.000Z"
updated: "2002-01-26T18:33:00.000Z"
replies: 20
views: 277
page: 1
pages: 2
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/14015-else-sats-som-vägrar-att-inte-köras"
---

# Else-sats som vägrar att _inte_ köras

_Sida 1 av 2._

## #1 — SPiN, 2002-01-24T19:38Z

Jag vet inte om det är jag eller om det är datorn som det är ett allvarligt fel på.

Mitt formulär:

```
<form action="sida.asp" method="POST">
<input type="hidden" name="fld1" value="val1">
<input type="hidden" name="fld2" value="val2">
<input type="submit" name="minKnapp" value="knappValue">
</form>
```

När jag sedan tar emot på mottagarsidan, tar den emot precis som den ska. Dock funkar inte If-satsen som den ska, eftersom att Else-blocket körs, oavsett om If och ElseIf stämmer.

```
If Request.Form ( "minKnapp" ) = "knappValue" And Request.Form ( "fld1" ) <> "" And Request.Form ( "fld2" ) <> "" Then
&nbsp; ' Gör nåt.
ElseIf Request.QueryString ( "fld1" ) <> "" And Request.QueryString ( "fld2" ) <> "" Then
&nbsp; ' Gör nåt annat.
Else
&nbsp; Response.Redirect "Felhantering.asp"
End If
```

Vad som än skrivs in i formuläret, så skickas man vidare till Felhantering.asp. VARFÖR?!

Är det någon som har upplevt samma fel tidigare, och hur fasen löser man det?

MaH,

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

## #2 — LarsG, 2002-01-24T19:42Z

Byt querystring mot form.

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

## #3 — SPiN, 2002-01-24T19:49Z

Varför? Jag vill ju kolla om det är form-värden som skickas, eller om det är querystrings. Man kan skicka informationen på två olika sätt nämligen.

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

## #4 — jorgen, 2002-01-24T20:00Z

```
If cstr(Request.Form ( "minKnapp" )) = "knappValue" And len(Request.Form ( "fld1" )) > 0 And len(Request.Form ( "fld2" )) > 0 Then
  ' Gör nåt.
ElseIf len(Request.QueryString ( "fld1" )) > 0 And len(Request.QueryString ( "fld2" )) > 0 Then
  ' Gör nåt annat.
Else
  Response.Redirect "Felhantering.asp"
End If
```

Har varit med om att det blivit knas och skriva "" om det är fel subtyp. Eftersom fältet antagligen kan vara null kan man inte använda cstr, för då blir det fel, det är därför säkrare med len.

mvh Jörgen :)

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

## #5 — LarsG, 2002-01-24T20:01Z

Nej, det kanske inte var så relevant svar.

Om du gör en utskrift på allt då

```
response.write "k:" & Request.Form ( "minKnapp" ) & ":k"
response.write "f1:" & Request.Form ( "fld1" ) & ":1f"
response.write "f2:" & Request.Form ( "fld2" ) & ":2f"

response.write "q1:" & Request.querystring ( "fld1" ) & ":1q"
response.write "q2:" & Request.querystring ( "fld2" ) & ":2q"
```

eller du kanske har gjort det?

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

## #6 — SPiN, 2002-01-24T20:06Z

Redan försökt att omvandla till andra typer och att använda Len (). Hjälper inte ett jota, tyvärr! :l

Grejjen är den, att om man tar bort hela Else-blocket, så stämmer allt. Kan inte köra så dock, eftersom att det blir en säkerhetslucka...

Jag har aldrig varit med om något liknande tidigare, det här är helskumt!

Red.} LarsG\> Japp, det har gjorts... Alla värden stämmer, dom finns där.

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

## #7 — SPiN, 2002-01-26T13:25Z

Det är något riktigt allvarligt fel på någonting! x(

Följande kod skriver ut "ID:et finns":

```
If Trim ( cStr ( Request.Form ( "replyThread" ) ) ) = "Skicka!" And Len ( Request.Form ( "threadID" ) ) > 0 And Len ( Request.Form ( "forumID" ) ) > 0 Then
&nbsp; &nbsp; id = Request.Form ( "threadID" )
ElseIf Request.QueryString ( "threadID" ) <> "" And Request.QueryString ( "forumID" ) <> "" Then
&nbsp; &nbsp; id = Request.QueryString ( "threadID" )
End If

If id <> "" Then
&nbsp; &nbsp; Response.Write "ID:et finns"
Else
&nbsp; &nbsp; Response.Write "ID:et finns INTE!"
End If
Response.End
```

Följande kod redirectar till Felhantering.asp:

```
If Trim ( cStr ( Request.Form ( "replyThread" ) ) ) = "Skicka!" And Len ( Request.Form ( "threadID" ) ) > 0 And Len ( Request.Form ( "forumID" ) ) > 0 Then
&nbsp; &nbsp; id = Request.Form ( "threadID" )
ElseIf Request.QueryString ( "threadID" ) <> "" And Request.QueryString ( "forumID" ) <> "" Then
&nbsp; &nbsp; id = Request.QueryString ( "threadID" )
End If

If Trim ( cStr ( id ) ) = "" Then
&nbsp; &nbsp; Response.Redirect "Felhantering.asp"
End If
```

Det är helt sjukt!
Villkoren stämmer, om man går in på sidan med värden i querystringen, men inte via formulär med POST!

Snart ger jag upp ASP:en helt... "#%¤#&%/&/%. :x

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

## #8 — Pace, 2002-01-26T13:30Z

Verkar vara ett väldigt krångligt tillvägagångsätt du har valt om man kan posta från två olika fält. Lägg till en "action" variabel för varje forumlär i så fall:

```
<INPUT TYPE="hidden" NAME="action" VALUE="namn_för_querystrings">
```

```
<INPUT TYPE="hidden" NAME="action" VALUE="namn_för_form">
```

Sedan tar du emot det på följande vis:

```
If Request("action") = "namn_för_XXX" Then
 ' Blä
Else
 ' Bla
End If
```

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

## #9 — SPiN, 2002-01-26T13:50Z

Grejjen är den att man inte kan posta information på två olika sätt, utan endast med POST. GET används när man klickar på en länk från en annan sida.

Självklart skulle jag kunna göra som du visar ändå, men jag tycker inte att det blir lättare. Mindre koll på vad som händer, känns det som... Min kod BÖR ju fungera, det är något klurigt med ASP-tolken/motorn bara. :x

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

## #10 — Pace, 2002-01-26T13:54Z

Nä, nu gör du som jag säger! ;) 

Så här är väl inte så krångligt:

```
Select Request.Method
Case "POST"
 ' Gör vad du nu ska göra med det postade forumläret.
Case "GET"
 ' Gör nåt med länken.
End Select
```

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

## #11 — SPiN, 2002-01-26T14:19Z

Då måste jag göra om en massa, ju! :(

Jag väntar på LarsG, Vide, emission, @nders eller ett smartare svar av dig. :e ;)

Ska se vad jag kan göra... Finns många olika sätt att göra på.

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

## #12 — solbulle, 2002-01-26T14:28Z

Du har prövat att startat om systemet? Tycker det verkar väldigt konstigt att det inte funger ar om du verkligen har skrivit som du skriver.

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

## #13 — SPiN, 2002-01-26T14:37Z

Jadå, jar har provat ALLT! Nästan.

Jag får väl bygga om skiten ändå... :x

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

## #14 — cyprys, 2002-01-26T14:42Z

```
<%
If Len(Trim(Request.Form( "fld1" ))) > 0 And Len(Trim(Request.Form( "fld2" ))) > 0 Then
  ' Gör nåt!!!
Else
  Response.Redirect "Felhantering.asp"
End If
%>
```

???

r/ Funkar i resten av världen vad jag vet i alla fall  ;)

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

## #15 — Pace, 2002-01-26T15:03Z

> Då måste jag göra om en massa, ju!

Och jag som trodde det var bättre att ha en bra stuktur i min kod... :OO 

> Jag väntar på LarsG, Vide, emission, @nders eller ett smartare svar av dig.

 :OO 

> Ska se vad jag kan göra... Finns många olika sätt att göra på.

Och det bästa är återigen att göra det så strukturerat och enkelt som möjligt. Med andra ord är det bäst att skriva om koden.

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

## #16 — SPiN, 2002-01-26T15:14Z

Hm, du vet ju inte hur resten av min kod ser ut, så det där håller egentligen inte. :)

Men självklart är det bra med strukturerad kod, det har jag alltid. Däremot har jag ovanan att försöka hålla ned på antalet olika dokument, och använda samma dokument till flera saker. Det är därför det här problement uppstod...

Jag som verkligen inte vill använda Pace's alternativ blir väl tvungen till det nu. Jäbbrans. §e ;)

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

## #17 — solbulle, 2002-01-26T15:21Z

Är du säker på att det inte är något annat på sin sida spm gör att du hamnar på Felhantering.asp då?
Kanske en dum fråga men ofta brukar ju felen vara enkla men man ser dom inte.

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

## #18 — SPiN, 2002-01-26T15:22Z

100% säker. Har testat att skicka till en annan sida i else-blocket, och då skickas jag dit.

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

## #19 — Pace, 2002-01-26T15:23Z

SPiN: [Läs](http://cgi.webforum.nu/wf/Forum11/HTML/005404.html#9) och begrunda!

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

## #20 — SPiN, 2002-01-26T15:26Z

Bah. Det där är för sissys! Jag använder egna COM-objekt och templates! Det är grejjer, man får riktigt bra koll på sina sidor, dokumenten som man skriver är 100% pure ASP ( nästan ) och vilken kontroll! :o

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/14015-else-sats-som-vägrar-att-inte-köras  
Nästa sida: https://www.webforum.nu/amne/asp/14015-else-sats-som-vägrar-att-inte-köras/page2.md
