webForumDet fria alternativet

cookie fråga

ASP

27 svar · 552 visningar · startad av LR^evil.sid

Medlem sedan maj 2002560 inlägg
Frågan#1

skulle göra en besöksräknare men den vill inte räkna upp när jag går till sidan, inte när några andra av mina polare gör det heller.

[red]if request.servervariables("local_addr") = "127.0.0.1" or request.servervariables("local_addr") = "192.168.0.1" then

else
	if request.cookies("rainbow") =< date then
		if session("once") = false then
			session("once") = true
			dim physicalFile, AspObj, objectFile, visits

			physicalFile = Server.MapPath("\") & "\visits.log"
			Set AspObj = Server.CreateObject("Scripting.FileSystemObject") 
			Set objectFile = AspObj.OpenTextFile(physicalFile,1,true)

			visits = objectFile.readline

			physicalFile = Server.MapPath("\") & "\visits.log"
			Set AspObj = Server.CreateObject("Scripting.FileSystemObject") 
			Set objectFile = AspObj.OpenTextFile(physicalFile,2,true)

			visits = visits + 1
			objectFile.writeline visits

			objectFile.close

			set AspObj = nothing
			set objectFile = nothing

			physicalFile = ""
			visits = ""
		end if
		response.cookies("rainbow") = date
		response.cookies("rainbow").expires = dateadd("d",1,date)
	else
		response.cookies("rainbow") = date
		response.cookies("rainbow").expires = dateadd("d",1,date)
	end if
end if[/red]
Medlem sedan juni 200032 967 inlägg
#2

Prova att göra en typkonvertering på cookiedatumvärdet:

if Cdate(request.cookies("rainbow")) =< date then

Välkommen till webForum dessutom! :)

Mvh,

Medlem sedan maj 2002560 inlägg
#3

konverteringen ger en "type mismatch". har du någon annan idé?

tack för välkommnandet.

Medlem sedan juni 200032 967 inlägg
#4

Då verkar det som om cookievärdet inte är ett giltigt datum. Hur ser cookievärdet ut?

response.write request.cookies("rainbow")
Medlem sedan maj 2002560 inlägg
#5

2002-05-03

ser det ut..

Medlem sedan maj 2002560 inlägg
#6

i övrigt ser det inte ut att vara fel på koden nånstans eller?

Medlem sedan aug. 2001226 inlägg
#7

request.cookies("sak")("undersak") testa

Medlem sedan maj 2002560 inlägg
#8

vad skulle det vara för "undersak" då?

Medlem sedan dec. 200012 464 inlägg
#9

Om du byter

if request.cookies("rainbow") =< date then

till

if request.cookies("rainbow") <= date then

?

Medlem sedan maj 2002560 inlägg
#10

det funkar inte. den räknar inte upp.

kände att det kanske är nödvändigt att berätta att jag tar bort cookien som finns innan jag börjar testa. sedan testar jag sidan igen. stänger browsern. sedan testar jag igen och den räknar inte upp.

Medlem sedan maj 2002560 inlägg
#11

ingen som har nån idé?

Medlem sedan juni 200032 967 inlägg
#12

Har du med typkonverteringen i jämförelsen när du provar LarsGs förslag?

Medlem sedan maj 2002560 inlägg
#13

Type mismatch: 'cdate'

Medlem sedan juni 200032 967 inlägg
#14

Detta är märkligt. Enligt den testutskrift du gjorde tidigare så verkar det ju helt klart vara ett giltigt datum som finns i cookien.

Hur ser koden ut när du har med typkonverteringen?

Om du kör följande, vad får du då för resultat?

response.write isDate(request.cookies("rainbow"))

Mvh,

Medlem sedan maj 2002560 inlägg
#15

så här ser koden ut nu... inte mycket ändringar.

[red]
<%
	if request.servervariables("local_addr") = "127.0.0.1" or request.servervariables("local_addr") = "192.168.0.1" then

	else
		if cdate(request.cookies("rainbow")) <= date then

			if session("once") = false then
				session("once") = true
				dim physicalFile, AspObj, objectFile, visits

				physicalFile = Server.MapPath("\") & "\visits.log"
				Set AspObj = Server.CreateObject("Scripting.FileSystemObject") 
				Set objectFile = AspObj.OpenTextFile(physicalFile,1,true)

				visits = objectFile.readline

				physicalFile = Server.MapPath("\") & "\visits.log"
				Set AspObj = Server.CreateObject("Scripting.FileSystemObject") 
				Set objectFile = AspObj.OpenTextFile(physicalFile,2,true)

				visits = visits + 1
				objectFile.writeline visits

				objectFile.close

				set AspObj = nothing
				set objectFile = nothing

				physicalFile = ""
				visits = ""
			end if
			response.cookies("rainbow") = date
			response.cookies("rainbow").expires = dateadd("d",1,date)
		else
			response.cookies("rainbow") = date
			response.cookies("rainbow").expires = dateadd("d",1,date)
		end if
	end if
%>[/red]

isDate ger True

Medlem sedan maj 2002560 inlägg
#16

borde koden inte fungera?

Medlem sedan juni 200032 967 inlägg
#17

Jo, jag har stirrat mig blind på din kod, och kan inte förstå varför den inte fungerar.

Eftersom IsDate() skriker true, så kan du ju rimligtvis inte få en type mismatch när du försöker göra en subtypskonvertering...

*kliar sig i huvet*

Medlem sedan maj 2002560 inlägg
#18

det här är de enda koden innan include-filen

[red]<% @language=vbscript %>
<% option explicit %>
<% response.buffer = true %>
<% dim x %>
<!-- #include file='visits.inc' -->[/red]

koden jag publicerdade tidigare ligger i include-filen.

Medlem sedan juni 200032 967 inlägg
#19

Om du plockar bort den yttre if-satsen (som kollar ip-adress), och kör includefilen för sig själv?

Medlem sedan maj 2002560 inlägg
#20

fortfarande type mismatch
--
en tanke är att jag struntar i att knacka den här själv om någon vet ett script som räknar besök med kriteriet att de får besöka sidan hur många gånger som hellst men räknaren räknar dem bara som 1 besökare per dag.

277 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)