Skapa ny tråd skrev:
Rubrik:____________ Relaterat till inlägget.
Vilken del av ovanstående citat är det du inte förstår? :OO
8 svar · 242 visningar · startad av danis
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
Skapa ny tråd skrev:
Rubrik:____________ Relaterat till inlägget.
Vilken del av ovanstående citat är det du inte förstår? :OO
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.
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?
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.
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.
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å. ;)
Jag kör ändå värdena i en funktion innan.
Det skadar inte att tips lite om hur man fixar säkerheten. Många som kör värden direkt in i databaser.