Frågan 1 sep. 2004 01:43 #1 Jag kan inte jämföra en session med en querystring. Är det något speciellt med dessa två?
Om jag gör såhär:
If session("hej") = "1" Then
Response.Write "hej hej hej"
End If
fungerar det
Om jag däremot gör såhär:
If session("hej") = Request.Querystring("hej_number") Then
Response.Write "hej hej hej"
End If
fungerar det inte.
Jag har kollat om querystringen innehåller något, och mycket riktigt innehåller den samma värde som sessionen. Ändå visas inget. :(
Re: Går inte att jämföra
magnusfernstrom skrev:
Jag kan inte jämföra en session med en querystring. Är det något speciellt med dessa två?
Om jag gör såhär:
If session("hej") = "1" Then
Response.Write "hej hej hej"
End If
fungerar det
Om jag däremot gör såhär:
If session("hej") = Request.Querystring("hej_number") Then
Response.Write "hej hej hej"
End If
fungerar det inte.
Jag har kollat om querystringen innehåller något, och mycket riktigt innehåller den samma värde som sessionen. Ändå visas inget. :(
If not session("hej") = Request.Querystring("hej_number") Then
Response.Write "hej hej hej"
else
Response.Write "heja heja heja"
End If
kanske????
Grejen är den att jag inte tänkt ha något else. Kanske är onödigt, men envis som jag är!!!
<%
If Session("admin") > 0 OR Session("admin_forum") = Request.Querystring("cat") Then
%>
Administrationspanel
<%
End If
%>
Så har jag nu. Men som sagt, det fungerar inte. Om jag ska ha Not måste jag ju ha en Else-sats. Det är rörigt som det är nu. :)
Jesper T Medlem sedan nov. 2001 7 144 inlägg Testa detta
<%
If eval(len(Session("admin")) > 0 OR Session("admin_forum") = Request.Querystring("cat")) Then
%>
Administrationspanel
<%
End If
%>
Nej. Det gick inte. :(
Nu visas panelen vilket värde admin-sessionen än har.
Jesper T Medlem sedan nov. 2001 7 144 inlägg Detta då:
<%
If eval(clng("0"&Session("admin")) > 0 OR Session("admin_forum") = Request.Querystring("cat")) Then
%>
Administrationspanel
<%
End If
%>
Nope. Nu är det som från början. Medlemmer fungerar korrekt. Administratörer korrekt, men moderatorer fungerar ej. :(
Jag prövar med webbis kod.
Nä, den fungerar inte heller. :(
@nders Medlem sedan juni 2000 32 967 inlägg En sträng är inte samma sak som ett tal, även om det är samma siffra. Därför ska man alltid subtypskonvertera när man gör jämförelser.
Det skall man säkert. :moose
Så, hur skall man göra då? :q
@nders Medlem sedan juni 2000 32 967 inlägg Man skall använda exempelvis CLng() på båda värdena om det är heltal som skall jämföras. Är det strängar passar CStr() bra, och för datum fjunkar CDate().
mch
Jajamännsan! Nu fungerar det! :)
Tack Jesper T och @nders. Räddare i nöden!
Tack också WebbisNet. :bire
@nders skrev:
Man skall använda exempelvis CLng() på båda värdena om det är heltal som skall jämföras. Är det strängar passar CStr() bra, och för datum fjunkar CDate().
Är man riktigt cool så jämför man aldrig strängar! ;)
Jesper T Medlem sedan nov. 2001 7 144 inlägg Eller som någon sa: Det är fegt att subtypskonvertera. :)
Hur skall man annars göra då? :q
Tror det var lite skämtsamt sagt. :)
Ungefär som att säga: "Det är fegt att buggtesta innan lansering!"
Lura mig inte!!! Jag lyssnar på allt ni säger! ;)
Ungefär som att säga: "Det är fegt att buggtesta innan lansering!"
:L
Yes! I'm back!
När man är inloggad som medlem får jag detta:
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'CLng'
/f/forum_start.asp, line 513
Koden:
<%
If Session("admin") > 0 OR Session("admin_forum") = CLng(Request.Querystring("cat")) Then
%>
@nders Medlem sedan juni 2000 32 967 inlägg If isNull(någonting) then
någonting = 0
end if
'Din jämförelse här
Jesper T Medlem sedan nov. 2001 7 144 inlägg ja, om inte min variant funkade: clng("0"&Session("admin"))>0