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
' Gör nåt.
ElseIf Request.QueryString ( "fld1" ) <> "" And Request.QueryString ( "fld2" ) <> "" Then
' Gör nåt annat.
Else
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?
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 :.
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
id = Request.Form ( "threadID" )
ElseIf Request.QueryString ( "threadID" ) <> "" And Request.QueryString ( "forumID" ) <> "" Then
id = Request.QueryString ( "threadID" )
End If
If id <> "" Then
Response.Write "ID:et finns"
Else
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
id = Request.Form ( "threadID" )
ElseIf Request.QueryString ( "threadID" ) <> "" And Request.QueryString ( "forumID" ) <> "" Then
id = Request.QueryString ( "threadID" )
End If
If Trim ( cStr ( id ) ) = "" Then
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!
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:
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
<%
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.
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 ;)
Ä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.
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