webForumDet fria alternativet

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

ASP

20 svar · 248 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Frågan#1

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,

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan dec. 200012 464 inlägg
#2

Byt querystring mot form.

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20007 896 inlägg
#3

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.

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan feb. 20012 412 inlägg
#4
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 :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan dec. 200012 464 inlägg
#5

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?

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20007 896 inlägg
#6

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.

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

[Redigerat av SPiN den 24 jan 2002]

Medlem sedan mars 20007 896 inlägg
#7

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

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan juni 20019 024 inlägg
#8

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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan mars 20007 896 inlägg
#9

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

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan juni 20019 024 inlägg
#10

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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan mars 20007 896 inlägg
#11

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å.

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan mars 20015 287 inlägg
#12

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.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan mars 20007 896 inlägg
#13

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

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

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan dec. 20003 563 inlägg
#14
<%
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 ;)

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

[Redigerat av cyprys den 26 jan 2002]

Medlem sedan juni 20019 024 inlägg
#15

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.

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan mars 20007 896 inlägg
#16

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 ;)

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan mars 20015 287 inlägg
#17

Ä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.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan mars 20007 896 inlägg
#18

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

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

Medlem sedan juni 20019 024 inlägg
#19

SPiN: Läs och begrunda!

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan mars 20007 896 inlägg
#20

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

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

[Redigerat av SPiN den 26 jan 2002]

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)