webForumDet fria alternativet

får det lov att vara en kaka?

ASP

13 svar · 302 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#1

Två frågor om cookies:

1, Eftersom jag har en massa olika artiklar och jag tänkte ha ett röstningsförfarande på dem vill jag lägga in en cookie för varje artikel. Kan jag göra så att cookienamnet styrs av artikelns ID-nummer? Hur i såfall?

2, Kan man göra så att utgångsdatumet på cookien alltid är dagen efter? (det borde man kunna) Hur, i så fall?

Medlem sedan juni 200032 967 inlägg
#2
  1. man ska undvika att ha nycklar som har namn som bara är tal, men att ha en nyckel som heter R23 är helt ok. Response.Cookies("rostning")("R" & intArticleID) = "1"

  2. Ja, använd dateAdd() när du sätter giltighetstiden på kakan.

Medlem sedan jan. 20034 480 inlägg
#3

på svar 2), kan du beskriva lite bättre med tanke på att jag fortfarande är en komplett idiot (okej, kanske inte men nästan)

Medlem sedan maj 200010 687 inlägg
#4
Response.Cookies("foo").Expires = DataAdd("d", Date, 1)

Borde funka. :)

Medlem sedan juni 200032 967 inlägg
#5

Här kan man läsa om användandet av DateAdd().

Medlem sedan jan. 20034 480 inlägg
#6

behöver jag skriva något innan det eller räcker det så?

på fråga 1) hur skickar jag med id-numret?

Medlem sedan jan. 20034 480 inlägg
#7

prövade lite:
felmess:

Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'DataAdd' 

/rekom.asp, line 16

koden

<% 
Response.Buffer = True 
   
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")&";"

SQL = "SELECT * FROM sockrates WHERE id = " & Request.Form("id") & " "
Set RecSet = Conn.Execute(SQL)

page = "sidval.asp?ID="& Request.Form("id")&"&do=voted"

Response.Cookies("sockvote")("artikel"& Request.Form("id")) = voted
Response.Cookies("sockvote").Expires = DataAdd("d", Date, 1)    <--- rad 16

RecSet.Close
Set RecSet = Nothing

SQL = "UPDATE sockrates SET rekomvotes = rekomvotes + 1, rekom = rekom + '" & Request.Form("rekom1") & "' WHERE id = " & Request.Form("id")
Conn.Execute SQL

Conn.Close 
Set Conn=Nothing 

Response.Redirect page
%>

vad är det för fel? och kan jag skriva ID på det sättet som jag gör i cookien?

Medlem sedan sep. 20011 722 inlägg
#8

@nders varför ska man undvika att bara ha siffror i en kaka?

Medlem sedan jan. 20032 285 inlägg
#9

Lite fel syntax på DateAdd bara. :)

Response.Cookies("sockvote").Expires = DateAdd("d", 1, Date)
Medlem sedan juni 200032 967 inlägg
#10

KoTTeN skrev:

@nders varför ska man undvika att bara ha siffror i en kaka?

Därför att det är som att be om problem. Att skriva så här:

intMittID = 5
strNågot = Request.Cookies("minkaka")(intMittID)

innebär att man inte alls frågar efter värdet vars nyckel är 5, utan cookievärdet med index 5, dvs det sjätte värdet i kakan. Av samma anledning bör man inte ha kolumner i tabeller i en databas som heter bara en siffra. Det är bäddat för missförstånd.

Det går dock, om man nu skulle vilja det, varför man nu skulle vilja det.

Det heter dessutom DateAdd(), inget annat.

Mvh

Medlem sedan jan. 20032 285 inlägg
#11

@nders skrev:

Det heter dessutom DateAdd(), inget annat.

Jo, det också! :) Redigerat!

Medlem sedan jan. 20034 480 inlägg
#12

har dock fortfarande ett problem:
denna if-satsen har jag skrivit:

<% IF Request.Cookies("sockvote")("opinion") = "voted" then %>Du har röstat!<% end if %>

men den visar inte nånting när man röstat! grrr

cookiekod

Response.Cookies("sockvote")("opinion") = voted
Response.Cookies("sockvote").Expires = DateAdd("d", 1, Date)

jag har samma problem på artikelcookien, kod:

Response.Cookies("sockvote")("artikel"& Request.Form("id")) = voted
Response.Cookies("sockvote").Expires = DateAdd("d", 1, Date)

och kod:

<% IF Request.Cookies("sockvote")("artikel"& Request.("id")) = "voted" then %>Du har röstat!<% end if %>

vad har jag klantat till nu då?

Medlem sedan jan. 20032 285 inlägg
#13

Om du inte lägger till citationstecken är det en variabel's värde du lägger till.

Response.Cookies("sockvote")("opinion") = "voted"
Response.Cookies("sockvote")("artikel" & Request.Form("id")) = "voted"
Medlem sedan sep. 20011 722 inlägg
#14

ok, tack @nders, då vet jag.

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)