Avatar billede zantiago Nybegynder
02. oktober 2004 - 21:40 Der er 20 kommentarer og
1 løsning

Cookie - problem

Hej Eksperter (Eagleeye)

Jeg fik i går hjælp til at tjekke om en cookie eksisterede, og det virkede også der.

Mit problem er:
Jeg har en afstemningsfunktion hvor brugerne kun må stemme en gang pr. spørgsmål. (bestemt ved cookies)

Når brugeren svarer på spørgsmålet, sker dette:
-----------------------------------------------------------------
<%
spg_id     = request("poll_id")
svar_id    = request("svar")

' Informationer lagres i cookien
Response.Cookies("afstemning_filmpol")("spg_id") = spg_id 

' Hvor længe cookien skal vare - i dette tilfælde ét år
Response.Cookies("afstemning_filmpol").Expires = Date+365

Set rs_poll = Server.CreateObject("ADODB.RecordSet")
rs_poll.open "Select * From [afstemninger_besvarelser]" ,Conn ,1 ,3

rs_poll.addnew
rs_poll("spg_id")    = spg_id
rs_poll("svar_id")    = svar_id
rs_poll("ip")        = Request.ServerVariables("REMOTE_ADDR")
rs_poll.update
rs_poll.close

response.redirect session("retur") 
%>
-----------------------------------------------------------------

På selve siden med afstemningen tjekker jeg således:
-----------------------------------------------------------------
<% If Cstr(Request.Cookies("afstemning_filmpol")("spg_id")) = Cstr(id) then %>
<%=rs_poll_svar("svar")%>
<% else %>
<a href="stem.asp?poll_id=<%=rs_poll("id")%>&svar=<%=rs_poll_svar("id")%>"><%=rs_poll_svar("svar")%></a>
<% End If %>
-----------------------------------------------------------------

Det virkede i går!

Da jeg så i dag oprettede en ny afstemning, kunne jeg blive ved med at stemme, og det skal jeg jo ikke.

Hvad kan jeg gøre?

//Z
Avatar billede eagleeye Praktikant
02. oktober 2004 - 21:48 #1
Du bliver så nød til at gemme navnet på cookien så det indeholder idet, eks spg_xxx hvor xx er idet: spg_232

Det er nødvendigt at gemme en del-cookie pr. id så det tjekket bliver:

<% If Cstr(Request.Cookies("afstemning_filmpol")("spg_" & id)) = Cstr(id) then %>

og når du gemmer det så skal det være:

Response.Cookies("afstemning_filmpol")("spg_" &id)) = id
Avatar billede zantiago Nybegynder
02. oktober 2004 - 21:56 #2
ja jeg kan godt følge dig - Det virker dog ikke helt alligevel...

opret stemme:
------------------------------------------------------------------------------------
<%
spg_id     = request("poll_id")
svar_id    = request("svar")

' Informationer lagres i cookien
Response.Cookies("afstemning_filmpol")("spg_" &spg_id) = spg_id
Response.Cookies("afstemning_filmpol")("spg_id") = spg_id 

' Hvor længe cookien skal vare - i dette tilfælde ét år
Response.Cookies("afstemning_filmpol").Expires = Date+365

Set rs_poll = Server.CreateObject("ADODB.RecordSet")
rs_poll.open "Select * From [afstemninger_besvarelser]" ,Conn ,1 ,3

rs_poll.addnew
rs_poll("spg_id")    = spg_id
rs_poll("svar_id")    = svar_id
rs_poll("ip")        = Request.ServerVariables("REMOTE_ADDR")
rs_poll.update
rs_poll.close

response.redirect session("retur") 
%>
-------------------------------------------------------------------------------------

Tjek om bruger har stemt:
-------------------------------------------------------------------------------------
<%
id = rs_poll("id")
<% If Cstr(Request.Cookies("afstemning_filmpol")("spg_"&id)) = Cstr(id) then %>
<%=rs_poll_svar("svar")%>
<% else %>
<a href="stem.asp?poll_id=<%=rs_poll("id")%>&svar=<%=rs_poll_svar("id")%>"><%=rs_poll_svar("svar")%></a>
<% End If %>
-------------------------------------------------------------------------------------
Avatar billede zantiago Nybegynder
02. oktober 2004 - 21:57 #3
hov:
------------------------------------------------------------------------------------
<%
spg_id    = request("poll_id")
svar_id    = request("svar")

' Informationer lagres i cookien
Response.Cookies("afstemning_filmpol")("spg_" &spg_id) = spg_id

' Hvor længe cookien skal vare - i dette tilfælde ét år
Response.Cookies("afstemning_filmpol").Expires = Date+365

Set rs_poll = Server.CreateObject("ADODB.RecordSet")
rs_poll.open "Select * From [afstemninger_besvarelser]" ,Conn ,1 ,3

rs_poll.addnew
rs_poll("spg_id")    = spg_id
rs_poll("svar_id")    = svar_id
rs_poll("ip")        = Request.ServerVariables("REMOTE_ADDR")
rs_poll.update
rs_poll.close

response.redirect session("retur") 
%>
-------------------------------------------------------------------------------------
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:00 #4
virker stadig ikke - selvom jeg flyttede den linie :o(
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:03 #5
Det skulle gerne virke på de nye af steminger, det gør det måske ikke?
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:03 #6
Eller efter du har stemt igen?
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:05 #7
hmm - nej... Jeg trykker som en gal.. Prøver at oprette en ny afstemning, ser om det hjælper :o)
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:06 #8
Nej - Hjælper ikke at oprette en ny, jeg kan stadig stemme uhæmmet :o(
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:06 #9
det skulle også helt virker ´på den du har nu..
Det forstår jeg ikke helt.
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:07 #10
du kan se afstemningen på www.filmpol.dk
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:10 #11
Det er sq lidt mærkeligt... Prøver lige at vise koden igen:
-------------------------------------------------------------------------------------
<%
spg_id     = request("poll_id")
svar_id    = request("svar")

' Informationer lagres i cookien
Response.Cookies("afstemning_filmpol")("spg_" &spg_id) = spg_id

' Hvor længe cookien skal vare - i dette tilfælde ét år
Response.Cookies("afstemning_filmpol").Expires = Date+365

Set rs_poll = Server.CreateObject("ADODB.RecordSet")
rs_poll.open "Select * From [afstemninger_besvarelser]" ,Conn ,1 ,3

rs_poll.addnew
rs_poll("spg_id")    = spg_id
rs_poll("svar_id")    = svar_id
rs_poll("ip")        = Request.ServerVariables("REMOTE_ADDR")
rs_poll.update
rs_poll.close

response.redirect session("retur") 
%>
-------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------
<%
id = rs_poll("id")
%>
<tr>
<td width="85" valign="middle">
<% If Cstr(Request.Cookies("afstemning_filmpol")("spg_"&id)) = Cstr(id) then %>
<span class="textBold">» </span><%=rs_poll_svar("svar")%>
<% else %>
<span class="textBold">» </span><a href="stem.asp?poll_id=<%=rs_poll("id")%>&svar=<%=rs_poll_svar("id")%>"><%=rs_poll_svar("svar")%></a>
<% End If %>
-------------------------------------------------------------------------------------
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:11 #12
Efter jeg har stempt en gang, kan jeg ikke stemme igen, Ja og Nej er ikke længere links
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:13 #13
Kan det være fordi du bruger "back" uden at reloade?  Så vil de stadig stå som links
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:13 #14
Hva??? Hmm - Hvorfor kan jeg så det... Hmm wired...
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:15 #15
Prøver at slette alle mine cookies nu, det kan være at de er blevet helt "fucked" up, af alt det her test :o)
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:15 #16
Ja hvis man bruger "back" kan man få lov at stemme igen og igen :)

Det ville være en god ide at tjekke på cookien ind du sætter den og tæller svarene op:

<%
spg_id    = request("poll_id")
svar_id    = request("svar")


If Cstr(Request.Cookies("afstemning_filmpol")("spg_"&spg_id)) = Cstr(spg_id) then

' Informationer lagres i cookien
Response.Cookies("afstemning_filmpol")("spg_" &spg_id) = spg_id

' Hvor længe cookien skal vare - i dette tilfælde ét år
Response.Cookies("afstemning_filmpol").Expires = Date+365

..
..

end if
%>
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:17 #17
Ok, den skal ikke tjekke på = men <> i den sidst viste kode:

If Cstr(Request.Cookies("afstemning_filmpol")("spg_"&spg_id)) <> Cstr(spg_id) then
Avatar billede zantiago Nybegynder
02. oktober 2004 - 22:22 #18
nu virker det også hos mig :o)

Smid et svar, så kommer der velfortjente points :o)

//Z
Avatar billede eagleeye Praktikant
02. oktober 2004 - 22:24 #19
Ok ;)
Avatar billede zantiago Nybegynder
06. oktober 2004 - 00:44 #20
Kan jeg spørge om noget relateret her?

Håber jeg :o)

Jeg sagde på et tidspunkt at det ikke virkede, men det virkede fint hos dig..

Jeg har fundet ud af problemet..

Hvis jeg er på siden dvs, har stemt på en afstemning. Er der så en der opretter en poll, uden at jeg har genstartet min computer, kan jeg deltage så mange gang som jeg vil - HVAD SKER DER???

Det er mega mærkeligt - Ved du hvad det kan være?

Opretter gerne et spørgsmål til dig hvis du vil have points  - følte bare at det var i relevans her til :o)

//Z
Avatar billede zantiago Nybegynder
06. oktober 2004 - 00:45 #21
Eller næææh - Nu kan jeg stadig blive ved med at stemme, selv om jeg har genstartet.. Men min kammerat kan kun stemme en gang...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester