Avatar billede netsrac Praktikant
06. november 2000 - 20:31 Der er 24 kommentarer og
1 løsning

Har set mig blind på det her....tror jeg

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"hbmx.mdb\")

if request.cookies(\"counter\")(\"dato\") <> date then
\'-------Dette burde ikke blive kørt andan gang man ser siden på samme dag---------
Conn.Execute (\"UPDATE counter SET total = total + 1 WHERE id = 1;\")

if request.cookies(\"counter\")(\"visit\") = \"1\" then
Conn.Execute (\"UPDATE counter SET igen = igen + 1 WHERE id = 1;\")
else
Conn.Execute (\"UPDATE counter SET ny = ny + 1 WHERE id = 1;\")
response.cookies(\"counter\")(\"visit\") = \"1\"
end if

response.cookies(\"counter\")(\"dato\") = date
\'----------------------------------------------------------------------------------
end if

set rs = Conn.Execute(\"SELECT * FROM counter where id = 1\")
response.write \"<FONT SIZE=\'2\' FACE=\'Verdana\'><B>COUNTER</B></FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Totale Hits: \" & rs(\"total\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Nye Bes&oslash;gende: \" & rs(\"ny\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Tidligere Bes&oslash;gende: \" & rs(\"igen\") & \"</FONT><BR>\"
set rs = nothing
conn.Close
Set conn = nothing
%>

Hvad fanden sker der her....den burde da kun tælle første gang man besøger siden ? Hvad går der galt ?
Avatar billede r-bj Nybegynder
06. november 2000 - 20:46 #1
prøv at skrive indeholdet af cookien ud, så kan det være vi kan se hvor det går galt.

så vidt jeg kan se vurde det virke
Avatar billede netsrac Praktikant
06. november 2000 - 20:50 #2
Har jeg prøvet indholdet af cookien counter og key´en dato er = 06-11-2000 som jo er dags dato ??
Avatar billede ldanielsen Nybegynder
06. november 2000 - 20:52 #3
Du glemmer at sætte expires på din cookie, så hvis du lukker browseren og starter igen, så kører den en gang til
Avatar billede erikjacobsen Ekspert
06. november 2000 - 20:53 #4
har du sat en udløbsdato på cookien?
Avatar billede ldanielsen Nybegynder
06. november 2000 - 20:58 #5
ÆHBÆ erikjacobsen 43 sek ;o)

Hilsen Lars D
Avatar billede erikjacobsen Ekspert
06. november 2000 - 21:02 #6
Lars: alderen sætter sine spor. Men jeg kan da ramme tastaturet de fleste gange ;-)
Avatar billede netsrac Praktikant
06. november 2000 - 21:09 #7
Ja det var jo en god ide, men det var ikke det..

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"hbmx.mdb\")
if request.cookies(\"counter\")(\"dato\") <> date then
\'-------Dette burde ikke blive kørt andan gang man ser siden på samme dag---------
Conn.Execute (\"UPDATE counter SET total = total + 1 WHERE id = 1;\")
response.cookies(\"counter\").Expires = \"31/12/2022\"
if request.cookies(\"counter\")(\"visit\") = \"1\" then
Conn.Execute (\"UPDATE counter SET igen = igen + 1 WHERE id = 1;\")
else
Conn.Execute (\"UPDATE counter SET ny = ny + 1 WHERE id = 1;\")
response.cookies(\"counter\")(\"visit\") = \"1\"
end if

response.cookies(\"counter\")(\"dato\") = date
\'----------------------------------------------------------------------------------
end if
set rs = Conn.Execute(\"SELECT * FROM counter where id = 1\")
response.write \"<FONT SIZE=\'2\' FACE=\'Verdana\'><B>COUNTER</B></FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Totale Hits: \" & rs(\"total\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Nye Bes&oslash;gende: \" & rs(\"ny\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Tidligere Bes&oslash;gende: \" & rs(\"igen\") & \"</FONT><BR>\"
set rs = nothing
conn.Close
Set conn = nothing
%>
Avatar billede ldanielsen Nybegynder
06. november 2000 - 21:12 #8
Dette:

Response.Cookies(\"counter\").Expires = MonthName(Month(Now))&\" \"&Day(Now)+1&\", \"&Year(Now)

skulle give en \"holdbarhed\" på en dag.

Det der med to-dimensionelle cookies kender jeg ikke rigtig, så hvis der er problemer med det, så ..

Men gør den det den skal hvis du ikke lukker browseren, så skulle det være i orden.
Avatar billede erikjacobsen Ekspert
06. november 2000 - 21:18 #9
For langsom igen, Lars, Formater er *vistnok* som Lars sige:
  Response.Cookies(\"Type\").Expires = \"July 31, 1997\"
Avatar billede netsrac Praktikant
06. november 2000 - 21:19 #10
Det gør jo ingen forskel om jeg bruger din linie eller min..... to-dimensioneller cookies ved jeg ikke rigtig hvad du mener med....jeg har bare to \"keys\" i en cookie....

Selvom jeg ikke lukker browseren ned eksekveres det stadig....
Avatar billede netsrac Praktikant
06. november 2000 - 21:23 #11
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"hbmx.mdb\")
if request.cookies(\"counter\")(\"dato\") <> date then
\'-------Dette burde ikke blive kørt andan gang man ser siden på samme dag---------
Conn.Execute (\"UPDATE counter SET total = total + 1 WHERE id = 1;\")
\'response.cookies(\"counter\").Expires = \"31/12/2022\"
\'Response.Cookies(\"counter\").Expires = MonthName(Month(Now))&\" \"&Day(Now)+1&\", \"&Year(Now)
Response.Cookies(\"counter\").Expires = \"December 31, 2022\"
if request.cookies(\"counter\")(\"visit\") = \"1\" then
Conn.Execute (\"UPDATE counter SET igen = igen + 1 WHERE id = 1;\")
else
Conn.Execute (\"UPDATE counter SET ny = ny + 1 WHERE id = 1;\")
response.cookies(\"counter\")(\"visit\") = \"1\"
end if

response.cookies(\"counter\")(\"dato\") = date
\'----------------------------------------------------------------------------------
end if
set rs = Conn.Execute(\"SELECT * FROM counter where id = 1\")
response.write \"<FONT SIZE=\'2\' FACE=\'Verdana\'><B>COUNTER</B></FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Totale Hits: \" & rs(\"total\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Nye Bes&oslash;gende: \" & rs(\"ny\") & \"</FONT><BR>\"
response.write \"<FONT SIZE=\'1\' FACE=\'Verdana\'>Tidligere Bes&oslash;gende: \" & rs(\"igen\") & \"</FONT><BR>\"
set rs = nothing
conn.Close
Set conn = nothing
%>


Ja erikjacobsen....det holder ikke....det er ikke det....
Avatar billede erikjacobsen Ekspert
06. november 2000 - 21:24 #12
Ok Carsten. Kan du finde din cookie i C:\\windows\\cookies  eller C:\\windows\\profiles\\**bruger**\\cookies.
Jeg prøver at sætte et eksempel op!
Avatar billede netsrac Praktikant
06. november 2000 - 21:27 #13
Jep cookien er der...
Avatar billede ldanielsen Nybegynder
06. november 2000 - 21:52 #14
Hvor får du date fra? Skal det ikke vare date()

if request.cookies(\"counter\")(\"dato\") <> date() then

Eller måske Cstr(date()), Jeg er ikke sikker på at du kan sammenligne en dato med en streng umiddelbart.

Har ingen server her, så jeg kan ikke teste
Avatar billede netsrac Praktikant
06. november 2000 - 21:54 #15
Date og Date() er det samme...
Avatar billede ldanielsen Nybegynder
06. november 2000 - 21:59 #16
Er det ?!?
Avatar billede netsrac Praktikant
06. november 2000 - 22:01 #17
Jep...har også lige prøvet med date() men det gør absolut igen forskel..
Avatar billede erikjacobsen Ekspert
06. november 2000 - 22:03 #18
Jeg kan se på mine eksperimenter, at en caching af siden et eller andet sted undervejs
giver problemer - naturligvis - men nu *skal* jeg altså have noget andet færdigt!
Avatar billede ldanielsen Nybegynder
06. november 2000 - 22:16 #19
Dette svarer \"yes\" på min server (som jeg nu har startet)

Response.Cookies(\"dato\") = date
if date <> Request.Cookies(\"dato\") then Response.Write(\"yes\")

Det er fordi min windows og derfor min browser kører med dansk datoformat, mens min server kører med engelsk, så min browser gemmer 6-11-2000 i cookien, og serveren sammenligner det med 11/6/2000.

Brug fx. dette:
Response.Cookies(\"dato\") = Day(now)+1&Month(now)&Year(now)
if Response.Cookies(\"dato\") <> Day(now)&Month(now)&Year(now)

Eller et andet datoformat du er sikker på. Jeg er snart ikke sikker på nogetsomhelse, når det handler om datoer
Avatar billede netsrac Praktikant
07. november 2000 - 06:52 #20
ldanielsen >> Er ked af at sige det, men det er ikke fordi at du har dansk system og engelsk server at den svarer yes. Det er serveren der bestemmer hvad der skal bruges som dato, også i cookien.
Men din ide med at lægge en til dags dato også bruge den som gyldighed på cookien.

Undrer mig stadig over hvorfor at man ikke kan sammenligne en dato i en cookie, med det som serveren retunerer.
Avatar billede ldanielsen Nybegynder
07. november 2000 - 12:51 #21
En lille fejl fra min side:

Du skal lægge en dag til date inden du trækker tekststrengene ud:

myDate = DateAdd(\"d\",1,date)

Altså:

Response.Write (date) giver \"11/7/2000\"

Response.Cookies(\"dato\") = date
Response.Write(Request.Cookies(\"dato\") giver \"7-11-2000\"

Så det er ikke det samme!

Men tak for point\'ene :o)
Avatar billede netsrac Praktikant
07. november 2000 - 20:07 #22
Det er det samme....!!
<% Response.Write date() & \"<BR>\"
Response.Cookies(\"datosdf\") = date()
Response.Write Request.Cookies(\"datosdf\") %>

Begge returnerer 07-11-2000, så det er det samme og det ER serveren der bestemmer, det har ikke noget med client side at gøre.

Avatar billede ldanielsen Nybegynder
07. november 2000 - 22:43 #23
Kan du så forklare hvorfor min server gør sådan?

Du har helt ret i at det hele foregår server-side, tilsyneladende. Du skriver jo cookien med server-side script.

Men cookien bliver nu alligevel gemt på klienten, og det må være der det sker, eller rettere når klienten bliver bedt om at oplyse værdien senere.

Du kan ikke gemme en dato i en cookie, og derfor kan værdien af en cookie ikke blive lig med en dato, medmindre det sprog du bruger anvender en automatisk konvertering når du prøver at sammenligne.

En dato er jo ikke en streng, og du kan kun gemme strenge i en cookie.

Derfor kan du ikke sammenligne en cookie med en dato
Avatar billede ldanielsen Nybegynder
07. november 2000 - 22:50 #24
if request.cookies(\"counter\")(\"dato\") <> Cstr(date) then ...

Det virker her.
Avatar billede netsrac Praktikant
08. november 2000 - 16:35 #25
Jeg siger tak :)
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