webForumDet fria alternativet

Går inte att jämföra

ASP

22 svar · 727 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#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. :(

Medlem sedan feb. 20032 027 inlägg
#2

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????

Medlem sedan mars 20033 686 inlägg
#3

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. :)

Medlem sedan nov. 20017 144 inlägg
#4

Testa detta

<%
If eval(len(Session("admin")) > 0 OR Session("admin_forum") = Request.Querystring("cat")) Then
%>
Administrationspanel
<%
End If
%>
Medlem sedan mars 20033 686 inlägg
#5

Nej. Det gick inte. :(

Nu visas panelen vilket värde admin-sessionen än har.

Medlem sedan nov. 20017 144 inlägg
#6

Detta då:

<%
If eval(clng("0"&Session("admin")) > 0 OR Session("admin_forum") = Request.Querystring("cat")) Then
%>
Administrationspanel
<%
End If
%>
Medlem sedan mars 20033 686 inlägg
#7

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. :(

Medlem sedan juni 200032 967 inlägg
#8

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.

Medlem sedan mars 20033 686 inlägg
#9

Det skall man säkert. :moose

Så, hur skall man göra då? :q

Medlem sedan juni 200032 967 inlägg
#10

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

Medlem sedan mars 20033 686 inlägg
#11

Jajamännsan! Nu fungerar det! :)

Tack Jesper T och @nders. Räddare i nöden!

Tack också WebbisNet. :bire

Medlem sedan maj 200010 687 inlägg
#12

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

Medlem sedan nov. 20017 144 inlägg
#13

Eller som någon sa: Det är fegt att subtypskonvertera. :)

Medlem sedan mars 20033 686 inlägg
#14

Hur skall man annars göra då? :q

Medlem sedan maj 200010 687 inlägg
#15

Tror det var lite skämtsamt sagt. :)

Medlem sedan maj 200010 687 inlägg
#16

Ungefär som att säga: "Det är fegt att buggtesta innan lansering!"

Medlem sedan mars 20033 686 inlägg
#17

Lura mig inte!!! Jag lyssnar på allt ni säger! ;)

Ungefär som att säga: "Det är fegt att buggtesta innan lansering!"

:L

Medlem sedan mars 20033 686 inlägg
#18

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
%>
Medlem sedan juni 200032 967 inlägg
#19
If isNull(någonting) then
     någonting = 0
end if

'Din jämförelse här
Medlem sedan nov. 20017 144 inlägg
#20

ja, om inte min variant funkade: clng("0"&Session("admin"))>0

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)