cookies

ASP

22 svar · 1 495 visningar · startad av J0han

Trådstart#1

Hm, varför funkar inte detta script?

<% 
dim antal, totalt
antal = request.cookies("besok")
totalt = antal + 1
response.cookies("besok") = totalt
%>
<html> 
<font face="verdana" size="2">
Du har varit här <b><%=request.cookies("besok")%></b> gånger!
</html>

?

Får felmeddelandet

Körningsfel i Microsoft VBScript fel '800a000d' 

Inkompatibla typer: '[string: ""]' 

/default.asp, rad 4

Det funkade typ först men sen så funkade det inte helt plötsligt... :(
Tacksam för svar! :)

Medlem sedan juni 200032 967 inlägg
#2

har du provat att konvertera antal till ett heltal först?

#3

eh, nä, hur gör man det?

Medlem sedan mars 2000263 inlägg
#4

talet = cInt(strängmedtal)
asså:

Dim tal, strang
strang = "1"
tal = cInt(strang)

I ditt fall blir det:

antal = cInt(request.cookies("besok"))
Medlem sedan jan. 200078 inlägg
#5

Är det inte så att man måste ha
response.cookies("kaknamn")("besok")

kanske?

#6

nä, det behöver man inte.. :)

Medlem sedan aug. 20002 272 inlägg
#7

Får detta meddelandet:

Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'cInt' 

/test.asp, line 3
Medlem sedan dec. 19998 577 inlägg
#8

Då kan inte din cookie innehålla ett tal... skriv ut din cookie och kolla... och testa med IsNumeric också för att se om det är ett nummer...

Mvh, Vide

Medlem sedan aug. 20002 272 inlägg
#9

Hej!

Hur exakt skulle det se ut då?

Såhär ser det juh ut nu....

<% 
dim antal, totalt
antal = request.cookies("besok")
totalt = antal + 1
response.cookies("besok") = totalt
%>
<html> 
<font face="verdana" size="2">
Du har varit här <b><%=request.cookies("besok")%></b> gånger!
</html>
Medlem sedan dec. 19998 577 inlägg
#10

Det där kan inte vara all kod, eftersom du får typ missmatch på funktionen Cint...

Mvh, Vide

Medlem sedan aug. 20002 272 inlägg
#11

Hallo!

Tyvärr så är det all kod...
Jag fick den från wF Script......

Medlem sedan mars 20002 836 inlägg
#12

Hello,

Response funkar ej ihop med Request ....

Testa denna kod:

<% 
dim antal, totalt
antal = request.cookies("besok")
totalt = antal + 1
response.cookies("besok") = totalt
%>
<html> 
<font face="verdana" size="2">
Du har varit här <b><%=total></b> gånger!
</html>

cya,
PatrikB

Medlem sedan juni 2000690 inlägg
#13

Om det där är all kod så saknas väl datumet som cookien skall gälla till?
Annars raderas den väl när man stänger läsaren...

Lägg till:

Response.Cookies("besok").Expires = Date + 365

Eller nåt sånt.

Medlem sedan mars 20002 836 inlägg
#14

Hello igen,

helt riktigt.

Response.Cookies("besok").Expires = DateAdd("d",365,Now)

gör så att "kakan" ligger kvar i datorn i 365 dagar.

cya,
PatrikB

Medlem sedan juni 2000690 inlägg
#15

Är det någon nackdel med att endast använda Date + 365?

Blev lite osäker nu ;)

Medlem sedan mars 20002 836 inlägg
#16

Hello,

Bengan:
Det är nog som man lärt sig.
Själv använder jag mig av datum funktionerna när jag håller på och räknar med datum.
Man kan oxå skriva:

dteFutureDate = DateAdd("y",1,Now)

Vilket är detsamma som att plusa på med 365 dagar .... ett år framåt alltså
Eller om man bara vill att den ska tex gälla i en timme:

dteFutureDate = DateAdd("h",1,Now)

Vilket är om en timme....

cya,
PatrikB

Medlem sedan dec. 19996 522 inlägg
#17

Jag har ett problem som oxå hör till detta tror jag..

nu har jag ju dubbelpostat det men det borde kanske tas upp här för framtida behov.

<%
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 man flyttar fram datumet ett par dagar (2 somjag agett) så kan man rösta hur många ggr som helst.

Tar den då serverns datum och sätter i cookien istället för han som tittar på sidas datum..

Hur kommer man förbi det ?

Medlem sedan juni 2000690 inlägg
#18

PatrikB:

Jo, jag vet hur DateAdd funkar det satte bara lite myror i huvudet på mig :)

Funderade tidigare på om det har någon betydelse vilken tidszon servern kör i och om cookiens datum måste vara satt med ett visst format.

Nåväl, bara det funkar så.
Snyggt användarnamn du har förresten :)

Erka:

Istället för att sätta Expire till 2 dagar så kan du ju även prova med att lägga in Now som ett till värde i cookien och sätta expires till ett år eller nåt.
Sen kollar du om det cookie värdet är under 2 dar gammalt med DateAdd( "d", -2, Now())

Medlem sedan aug. 20002 272 inlägg
#19

Hej!

Jag fattar inte....Får ni scriptet att funka?

Har fortfarande samma meddelande:

Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: ""]'

/test.asp, line 4

<% 
dim antal, totalt
antal = request.cookies("besok")
totalt = antal + 1
response.cookies("besok").Expires = DateAdd("d",365,Now)
%>
<html> 
<font face="verdana" size="2">
Du har varit här <b><%=total%></b> gånger!
</html>

Spelar juh f**n ingen roll hur man än gör... x(

Funkar juh inte...

Medlem sedan mars 20002 836 inlägg
#20

bort bort .... fel ställe ....

men här kommer en lösning:

PatrikB

262 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)