---
title: "Cookie expires och annat skummt fel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6885-cookie-expires-och-annat-skummt-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "erka"
published: "2000-09-28T11:38:00.000Z"
updated: "2000-10-17T08:37:00.000Z"
replies: 18
views: 520
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/6885-cookie-expires-och-annat-skummt-fel"
---

# Cookie expires och annat skummt fel

## #1 — erka, 2000-09-28T11:38Z

Hejsan!

Jag har en sida där man röstar. Om man har röstat 3 ggr så får man vänta 2 dagar tills man får rösta igen.

topplistan.asp ser ut så här

```
<%Response.Buffer = True
Request.QueryString("rostat")
Dim Antal, Svar, Tack
Antal = Request.Cookies ("rosta")("id")

Svar = 3 - Antal
If Antal = 0 then 
Antal = 0
ElseIf Antal > 2 then
Tack = "<br>Du är välkommen att rösta igen på nästa veckas topplista."
End If
%>
```

sen radar jag upp alla man kan rösta på

listaapp.asp ser ut så här

```
<%
Response.Buffer = True
Response.Cookies("rosta").Expires = Date() + 2
If Request.cookies("rosta")("id") > 2 Then
Response.redirect "redanrostat.asp"
Else 
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1

Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")

End If
%>
```

Om jag nu flyttar fram datumet 3 dagar eller så kan man rösta hur många ggr som helst. cookien verkar inte lägga in en ny. Detta ska jag ju kunna undvika på något sätt.

Snälla hjälp, mycket tacksam faktiskt..=)

Permalänk: https://www.webforum.nu/p/6885

## #2 — erka, 2000-09-29T00:19Z

Är det så att jag ger cookien ett värde från serverns aktuella datum och inte den som kollar på den.

Hur skriver man klientens datum ner till hans cookie ? ingen som vet..

Permalänk: https://www.webforum.nu/p/251079

## #3 — Vide, 2000-09-29T06:48Z

Datumet som ASP/VBscript behandlar (om koden körs på servern) är alltid av serverns lokala tid, vill du använda klientens tid så måste du skicka med denna ifråna javascript till servern, förslagsvis via en Querystring...

Mvh, Vide

Permalänk: https://www.webforum.nu/p/251080

## #4 — PatrikB, 2000-09-29T09:52Z

Tycker att i detta fall så spelar det ju ingen roll då datumet endast e en referens och den kommer ju alltid att stämma ..... så vida du inte flyttar siten varje dag mellan olika servrar så kommer de 2 dagarna alltid att vara 2 dagar vare sig du sätter datum referensen på servern eller clienten.

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/251081

## #5 — @nders, 2000-09-29T10:01Z

bort, bort, bort...

Permalänk: https://www.webforum.nu/p/251082

## #6 — erka, 2000-09-29T12:40Z

Nu är det helt konstigt...

Man röstar på topplistan och på den sidan kör jag denna kod..

```
<%Response.Buffer = True
Request.QueryString("rostat")
Dim Antal, Svar, Tack
Antal = Request.Cookies ("rosta")("id")

Svar = 3 - Antal
If Antal = 0 then 
Antal = 0
ElseIf Antal > 2 then
Tack = "<br>Du är välkommen att rösta igen på nästa veckas topplista."
End If
%>
```

om man har några röster kvar så kan man klicka på en knapp vid varje röstobjekt. Denna sida topplistaapp.asp har koden

```
<%
Response.Buffer = True
Response.Cookies("rosta").Expires = Date() + 2
If Request.cookies("rosta")("id") > 2 Then
Response.redirect "redanrostat.asp"
Else 
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")
End If
%>
```

Nu är det skitkonstigt, om jag tar bort cookies i cookies katalogen som jag fått tidigare och ställer fram datumet ett par dagar. då kan man rösta hur många ggr som helst..?? varför och vad ska jag skriva..

Mycket tacksam hitills..

\[Redigerat av erka den 29 sep 2000\]

Permalänk: https://www.webforum.nu/p/251083

## #7 — erka, 2000-09-29T18:12Z

Men om jag ställer om datumet till 4 dagar eller så och tar bort alla cookies från min profil. Då kan jag rösta hur många ggr som helst..

\*\*vrider mig i hårbottnen\*\*

Permalänk: https://www.webforum.nu/p/251084

## #8 — erka, 2000-10-01T18:21Z

har nu suttit och läst igenom allt om cookies jag kan hitta här samt allt om cookies i mina böcker.Förstår inte varför det blir fel..??...

Det verkar som den inte skriver någon ny cookie om man flyttar fram datumet lixom..

Ber på mina bara knän..

Permalänk: https://www.webforum.nu/p/251085

## #9 — erka, 2000-10-01T19:46Z

Borde inte detta funka helt utmärkt

```
<%
Response.Buffer = True
Response.Cookies("rosta").Expires = DateAdd("d",2,Now)

If Request.cookies("rosta")("id") > 2 Then
Response.redirect "redanrostat.asp"
Else
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")
End If
%>
```

Om jag flyttar fram det förbannade datumet 3 dagar så kan man rösta hur många ggr som helst. Om jag tar bort alla sparade cookies och flyttar fram datumet, då kan man likförbannat rösta hur många ggr som helst. Den borde väll skriva ner det datumet:..

Så jvla konstigt...

Börjar snart erbjuda pengar för hjälp med detta..

Är det fel på min dator kanske ???

Permalänk: https://www.webforum.nu/p/251086

## #10 — erka, 2000-10-01T19:55Z

Om jag tar bort expires funktionen óch har denna kod..

```
<%
Response.Buffer = True
If Request.cookies("rosta")("id") > 2 Then
Response.redirect "redanrostat.asp"
Else
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")
End If
%>
```

då fungerar det att byta datum så klart. alltså är det fel på hur jag sätter in cookie expires..vart fan ska det inte, ser ju rätt ut som jag hade tidigare..

Permalänk: https://www.webforum.nu/p/251087

## #11 — Vide, 2000-10-01T21:00Z

Testa att lägga den raden efter det att du sätter värdet till cookien...

Mvh, Vide

Permalänk: https://www.webforum.nu/p/251088

## #12 — erka, 2000-10-02T16:23Z

vide, vill du bli min fru, ska jag ta dig här och nu...=)

tack! alltså, hmmmmm kan vara att jag kokade min hjärna i bastun i förra veckan..Så nu vet alla, bada inte bastu !

Permalänk: https://www.webforum.nu/p/251089

## #13 — erka, 2000-10-11T21:13Z

Nehh nu blir jag tokig, ser inget fel med denna kod. När jag slänger upp den på servern och om jag har rätt datum inställt så kan man bara rösta tre gånger men om jag flyttar fram datumet på min maskin som jag surfar på nätet med kan man rösta hur mågna ggr som helst..

vad är det som kan vara fel ?

```
<%
Response.Buffer = True
If Request.cookies("rosta")("id") > 2 Then
Response.redirect "redanrostat.asp"
Else 
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1
Response.Cookies("rosta").Expires = Date() +2
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")

End If
%>
```

blir konstig i skallen snart

Permalänk: https://www.webforum.nu/p/251090

## #14 — erka, 2000-10-11T21:22Z

vide , det du pratade om att sätta datuemet i från klienten, hur gör man det. Gärna rätt utförligt...=)

Men det verkar ju som om den inte skickar någon ny cookie till klienten när man flyttar fram datumet..Borde inte spela någon roll ju...ahhh

\[Redigerat av erka den 11 okt 2000\]

Permalänk: https://www.webforum.nu/p/251091

## #15 — erka, 2000-10-13T13:57Z

hej ! hur gör man om man vill att cookien ska hålla i tex 2 timmar ? orkar inte pula med 2 dagar för det fungerar ändå inte..grr...
någon ?

Permalänk: https://www.webforum.nu/p/251092

## #16 — Vide, 2000-10-14T13:33Z

Response.cookies("Din_cookie").expires = dateadd("h",2,now)

Permalänk: https://www.webforum.nu/p/251093

## #17 — erka, 2000-10-14T14:46Z

Tack Vide. Du ser föresten inget fel på koden jag skrev tidigare..Fattar inte vad som är fel....den borde ju skicka en ny cookie som hindrar att rösta mer än 3 ggr om man flyttar fram datumet på en klient som kollar på sidan..

Men det gör den fan inte, då kan man rösta hur många ggr som helst..

tack för det, får sätta det på 2 timmar då ,men man blir ju sur om man inte löser något som man pulat med länge

Permalänk: https://www.webforum.nu/p/251094

## #18 — Vide, 2000-10-15T14:44Z

Nja, ser inget direkt fel, men jag kan tänka mig att datatyperna inte stämmer överens när du jämför i If-satsen, testa detta istället:

```
If Cint(Request.cookies("rosta")("id")) > 2 Then
```

Cint() konverterar datatypen till en Integer...

Mvh, Vide

Permalänk: https://www.webforum.nu/p/251095

## #19 — erka, 2000-10-17T08:37Z

Fungerar fortfarande inte. Så jvla frustrerande. Varför ska det vara så svårt att få denna skit att fungera. Aja, tack för hjälpen i alla fall..Men den skriver fortfarande inte ner någon ny cookie om man flyttar fram datumet 2 dagar. Inte heller om jag ändrar om den som du skrev vide, tack i alla fall.

Om någon fortfarande orkar kolla så ser allt ut så här:

första sidan där man röstar:

```
<%
Request.QueryString("rostat")
Dim Antal, Svar, Tack
Antal = Request.Cookies ("rosta")("id")

Svar = 3 - Antal
If Antal = 0 then 
Antal = 0
ElseIf Antal > 2 then
Tack = "<br>Du är välkommen att rösta igen på nästa veckas topplista."

Du 
har nu röstat <%=Antal%> gång(er) och har <%=Svar%> röst(er) kvar.<%=Tack%> 

<table width="500">
<% Do until RS.EOF %> 
<tr><td width="30">
<a href="listapp.asp?id=<%=RS("AID")%>"><img src="images/knapp_ok.gif" border="0"></a> 
</td><td width="15">
<img src="images/<%=RS("Bubblare")%>.gif">
</td>
<td width="228">
<%=RS("Artist")%></td><td width="217"> 
<%=RS("Lat")%> 
</td>
</tr> 
<%
RS.MoveNext
Loop
RS.Close
Database.Close
%> 
</table>
```

och listaapp.asp ser ut så här:

```
<%
Response.Buffer = True
If Cint(Request.cookies("rosta")("id")) > 2 Then
Response.redirect "redanrostat.asp"
Else 
Response.cookies("rosta")("id") = Request.cookies("rosta")("id") +1
Response.Cookies("rosta").Expires = dateadd("h",2,now)
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/listan.mdb")
Connect.Open DSNtemp
SQLstmt = "SELECT * FROM lista"
SQLstmt = "UPDATE lista SET poang = poang +1 WHERE AID = " & Request.Querystring("id") & ""
Connect.Execute(SQLstmt)
Response.Redirect("topplistan.asp")

End If
%>
```

puhhhh...tack för hjälpen i alla fall...kunde ju gått.. ;)

Permalänk: https://www.webforum.nu/p/251096

---

Tråden på webben: https://www.webforum.nu/amne/asp/6885-cookie-expires-och-annat-skummt-fel
