webForumDet fria alternativet

Kolla om röstat med cookies

ASP

1 svar · 191 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Jag har detta lilla röstningsscript och tänkte lägga in en funktion att man inte kan rösta på en o samma post samma dygn.
Tanken var att lösa detta med cookies.
Man skulle kunna göra som så att man utelämnar de man har rösta på i sql-satsen men då kan jag ju ej lista tidigare resultat på dom så jag tänkte om man kunde utesluta dom ur arrayen när man slumapr eller köra randomfunktionen igen om resultatet blir en post som finns i min cookie.

<%
'solbulles lilla röstningsscript.

strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("minpoll.mdb")

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open strConnString 
	Set RS=Server.CreateObject("ADODB.Recordset")
	
person = Request.Form("person")
id = Request.Form("id")
poang = Request.Form("radiobutton")

If poang <> "" AND id <> "" then 
response.write "Du gav <b>" & person & " " & poang & "</b> poäng.<p>"

strSQL="UPDATE poll SET roster = roster + 1 , betyg = betyg + " & poang & " WHERE ID = " & id

connect.execute strsql,,128

'response.cookies("minpoll" & id)("person") = person
'response.cookies("minpoll" & id)("utgar") = (Date + 1)
'response.cookies("minpoll" & id).expires = (Date + 1)

End If
	
'Slumpa fram från databasen, verkar vara en tvivelaktig metod!?!

strSQL = "Select person, id, betyg, roster from poll"
   
   Set RS = Connect.Execute(strSQL)
   If RS.EOF Then
      Response.Write "Det finns inga personer"
   Else

'rostad = Request.Cookies("minpoll" & id)("person")
' Nja nu spricker det.

      arrPersoner = RS.GetRows()
      Randomize
	  
	  vem = Round(Rnd*Ubound(arrPersoner,2))

		id = arrPersoner(1,vem)
		person = arrPersoner(0,vem)
		
   End If

Set RS = nothing
Connect.Close
Set Connect = nothing	

response.write "Nu kan du rösta på <b>" & person & "</b><br>"

Response.write "<form name=""form1"" method=""post"" action=""minpoll.asp"">"
For i = 1 to 10
Response.write "<input type=""radio"" name=""radiobutton"" value=" & i &" onclick=""submit('this.form')"">" & i & vbcrlf
Next
response.write "<input type=""hidden"" name=""id"" value=" & id & ">"
response.write "<input type=""hidden"" name=""person"" value=" & person & ">"
response.write "</form><p>"

response.write "Så här är ställningen i nuläget:"

If IsArray(arrPersoner) Then

response.write "<table width=""50%"" border=""0"" cellspacing=""2"" cellpadding=""2"">"
response.write "<tr><td>Namn</td><td>Antal r&ouml;ster</td><td>Totalt betyg</td><td>Snittbetyg</td></tr>"
  
	For I = 0 TO UBound(arrPersoner,2)
		person = arrPersoner(0,I)
		id = arrPersoner(1,I)
		betyg = arrPersoner(2,I)
		roster = arrPersoner(3,I)
		
		snitt = betyg/roster 
snitt = FormatNumber(snitt, 2, -1, 0, 0)

response.write "<tr><td>" & person & "</td><td>" & roster & "</td><td>" & betyg & "</td><td>" & snitt & "</td></tr>"

	Next
response.write "</table>"
Else
	Response.Write "Inget hittades."
End If
%>
Medlem sedan mars 20015 287 inlägg
#2

Ingen som har ett hett tips?


      arrPersoner = RS.GetRows()
      Randomize
	  
	  vem = Round(Rnd*Ubound(arrPersoner,2))

		id = arrPersoner(1,vem)
		person = arrPersoner(0,vem)

'rostad = Request.Cookies("minpoll" & id)("person")
'If rostad = id GÖR OM!

I denna kod vill jag kolla om id finns som en cookie, om det finns, ta fram ett nytt slumptal tills jag hittar ett som inte finns eller att "talen tar slut"

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)