webForumDet fria alternativet

Undantag inträffade

ASP

10 svar · 338 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Nån som vet varför man får undantag inträffade

jag får det på denna rad

<%If Request.QueryString("userID") <> blockRS("vemArBlockad") then%>

Om användaren man besöker inte finns i listan över blockade så ska man kunna besöka användaren, annars kommer en text fram som visar att man är blockad

Medlem sedan juni 200032 967 inlägg
#2

Jag skulle gissa på att det beror på att recordsetet blockRS är tomt, dvs EOF.

Varför ställer du inte villkoret direkt i SQL-frågan?

mvh

Medlem sedan feb. 20032 027 inlägg
#3

@nders skrev:

Jag skulle gissa på att det beror på att recordsetet blockRS är tomt, dvs EOF.

Varför ställer du inte villkoret direkt i SQL-frågan?

mvh

Nu har jag

<%Set blockRS=objConn.Execute("SELECT * FROM tblUsers_block")%>
<%If Request.QueryString("userID") <> blockRS("vemArBlockad") then
do until blockRS.eof%>

koden för att visa sidan

<%Else%>
du är blockerad av användaren
<%blockRS.movenext: loop
End if%>

och får detta meddelande

'Loop' förväntas.
/view.asp, line 224
Else

Medlem sedan juni 200032 967 inlägg
#4

@nders skrev:

Varför ställer du inte villkoret direkt i SQL-frågan?

Set blockRS=objConn.Execute("SELECT * FROM tblUsers_block where vemArBlockad = " & request.querystring("userid"))
If not blockRS.EOF then
       Response.write "Du är blockerad av användaren."
End if

Du bör dock se till att skydda dig mot SQL Injection på värden du konkatenerar in i SQL-frågan. Jag tycker inte heller det verkar helt bra att skicka användar-id i querystring i detta fall, det är ju bara för användaren att ändra?

Medlem sedan feb. 20032 027 inlägg
#5

jag kör med skydd från injection när jag placerar värdena i variabeln

Medlem sedan juni 200032 967 inlägg
#6

WebbisNet skrev:

jag kör med skydd från injection när jag placerar värdena i variabeln

Inte i mitt kodexempel ovan, jag bara påminde.

Medlem sedan feb. 20032 027 inlägg
#7

@nders skrev:

@nders skrev:

Varför ställer du inte villkoret direkt i SQL-frågan?

Set blockRS=objConn.Execute("SELECT * FROM tblUsers_block where vemArBlockad = " & request.querystring("userid"))
If not blockRS.EOF then
       Response.write "Du är blockerad av användaren."
End if

Du bör dock se till att skydda dig mot SQL Injection på värden du konkatenerar in i SQL-frågan. Jag tycker inte heller det verkar helt bra att skicka användar-id i querystring i detta fall, det är ju bara för användaren att ändra?

jag gick över till forms, mitt problem nu är att för få parametrar angavs, när jag skriver ut strängen får jag med värdet i username

	SET objConn = connect()
	varName=request.querystring("username")
	delete = "DELETE FROM tblUsers_block WHERE vemArBlockad="&varName
	objConn.Execute delete
	response.redirect "/settings/?do=block"
Medlem sedan juni 200032 967 inlägg
#8

Vad var det vi sa om apostrofer runt strängvärden i SQL? ;)

Medlem sedan feb. 20032 027 inlägg
#9

@nders skrev:

Vad var det vi sa om apostrofer runt strängvärden i SQL? ;)

just det ja *ler*

*me so sorry*

Medlem sedan feb. 20032 027 inlägg
#10

har inte sovit på hela natten *ler*

Medlem sedan juni 200032 967 inlägg
#11

Det är inget försvar. ;)

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