webForumDet fria alternativet

Behöver hjälp!

ASP

8 svar · 242 visningar · startad av danis

Medlem sedan aug. 2002157 inlägg
Frågan#1

Hej!
Jag håller på med ett script liknande snyggast.com använder. I asp dock, jag har också en medlemstabell där jag hämtar ut de medlemmar med godkänd bild. Jag sparar vilka man röstat på i en kaka med värdet "true". Kakan tas bort efter ett dygn.
Problemet kommer när jag ska välja en ny bild. Jag loopar igenom alla kakor på detta vis.

if request.querystring("ny_bild") = "ja" then

i=0
do
i=i+1
Set rs = Connect.Execute("Select id From medlemmar Where bildvalid = 2 order by RAND() limit 1")

loop until request.cookies("snyggast_" & Rs("id")) <> "true" or i=100

if i => 100 then
Response.redirect "snyggast_main.asp"
else
Response.redirect "snyggast.asp?userid="& Rs("id") &"&forra="& Request.QueryString("forra")
end if
rs.close
end if

den där loopen funkar men den är så krävande så att alla sessions och variabler dör om man röstar lite för fort.
Nån vet hur jag kan lösa det på andra sätt? Satt 7 timmar igår med den där loopen så jag är riktigt sur på den. :)

mvh Daniel

Medlem sedan feb. 200115 571 inlägg
#2

Skapa ny tråd skrev:

Rubrik:____________ Relaterat till inlägget.

Vilken del av ovanstående citat är det du inte förstår? :OO

Medlem sedan dec. 20003 563 inlägg
#3

Du skulle väl kunna spara ner alla värden som klienten röstat på i en och samma cookie avskiljda med kommatecken. Sen så Ändrar du i SQL-satsen till.

"Select id From medlemmar Where bildvalid = 2 AND id NOT in ("& request.querystring("voted_pictures_so_far") &") order by RAND() limit 1"

På detta sätt slipper du köra den där onödiga loopen.

Medlem sedan aug. 2002157 inlägg
#4

Hur menar du avskilja med kommatecken?

Sen så kan jag vill inte använda:
("& request.querystring("voted_pictures_so_far") &")

Skulle jag inte kolla kakan med request.cookies?

Medlem sedan dec. 20003 563 inlägg
#5

aa. sorry request.cookies("voted_pictures_so_far") menade jag.

Kakans värde skulle kunna se ut typ "12, 32, 435, 5466, 734, 234, 2, 6436, 5, 3453, 457" där varje siffra representeras av ett id i databasen.

Medlem sedan maj 20031 472 inlägg
#6

Skicka INTE in värden direkt i databasen så där!!
Det är farligt och gör så att det är lätt att hacka sidan.
Innan du skickar in datan i sqlfrågan bör du kolla att den är ok så det inte är massa i den som inte hör hemma där.

Medlem sedan dec. 20003 563 inlägg
#7

greyhound skrev:

Skicka INTE in värden direkt i databasen så där!!
Det är farligt och gör så att det är lätt att hacka sidan.
Innan du skickar in datan i sqlfrågan bör du kolla att den är ok så det inte är massa i den som inte hör hemma där.

Mjo, men det var inte säkerheten jag skulle hjälpa till med nu, det är mer tankesättet. Och detta är det inget fel på. ;)

Medlem sedan aug. 2002157 inlägg
#8

Jag kör ändå värdena i en funktion innan.

Medlem sedan maj 20031 472 inlägg
#9

Det skadar inte att tips lite om hur man fixar säkerheten. Många som kör värden direkt in i databaser.

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