Jesper TMedlem sedan nov. 20017 144 inlägg Kan ngn tipsa hur jag kan snickra en räknare som plussar på 1 varje gång webläsaren uppdareras. Det hela spars i en cookie och nästa gång jag besöker den sida så kommer kakan ihåg var jag var sista gången så att säga.
om kaka = 0 then kaka=1
'uppdatera webläsare eller komma tillbaka ngn annan gång
kaka =2
OSV...
MVH Jesper
SicoMedlem sedan maj 20002 597 inlägg jag orkar inte sitta å förklara just nu såskickar en färdig räknare enligt din önskan.. har du problem så kan jag svara på dom
counter.asp
<%
Dim ObjCounterFile, ReadCounterFile, WriteCounterFile
Dim CounterFile
Dim CounterHits
Set ObjCounterFile = Server.CreateObject("Scripting.FileSystemObject")
CounterFile = Server.MapPath ("counter.txt")
Set ReadCounterFile= ObjCounterFile.OpenTextFile (CounterFile, 1, True)
If Not ReadCounterFile.AtEndOfStream Then
CounterHits = Trim(ReadCounterFile.ReadLine)
If CounterHits = "" Then CounterHits = 0
Else
CounterHits = 0
End If
ReadCounterFile.Close
Set ReadCounterFile = Nothing
CounterHits = CounterHits + 1
Set WriteCounterFile= ObjCounterFile.CreateTextFile (CounterFile, True)
WriteCounterFile.WriteLine(CounterHits)
WriteCounterFile.Close
Set WriteCounterFile = Nothing
Set ObjCounterFile = Nothing
%>
Sen på sidan där nuffrorna ska visas:
<!--#include file="counter.asp" -->
<% =CounterHits %>
mvh sico
Jesper TMedlem sedan nov. 20017 144 inlägg Tack Sico, men om jag inte har helt fel så ser det ut som att det är en räknare som räknar uppåt för alla som skulle råka surfa in på den sidan.
Jag behöver en "personlig räknare" som kollar i en kaka vad det senaste nummret var.
MVH Jesper
icaaqMedlem sedan okt. 20005 273 inlägg [red]
If Request.Cookie("dinkaka").Haskeys Then
Response.Cookie("dinkaka")("counter") = Request.Cookie("dinkaka")("counter") --1
Else
Response.Cookie("dinkaka")("counter") = 1
End If
[/red]
SicoMedlem sedan maj 20002 597 inlägg jaha du menar så... kunde väll inte jag veta ;) men nu när jag tänker efter så kan jag förstå hur jag menar...
sorry :(
Jesper TMedlem sedan nov. 20017 144 inlägg tack Icaaq, men....
När jag stänger webbläsaren och surfar tillbaka till sidan så är räknaren nollställd ju! :(
Jag skulle bli glad om den var kvar på den siffran som den var på när jag lämnade sidan sist.
MVH Jesper
SicoMedlem sedan maj 20002 597 inlägg dinkaka = Request.Cookie("dinkaka")("counter")
Response.Write dinkaka
???
Jesper TMedlem sedan nov. 20017 144 inlägg Tack Sico, men...
Det spelar ingen betydelse :(
Samma sak...
MVH Jesper
SicoMedlem sedan maj 20002 597 inlägg If Request.Cookie("dinkaka").Haskeys Then
Response.Cookie("dinkaka")("counter") = Request.Cookie("dinkaka")("counter") --1
Else
Response.Cookie("dinkaka")("counter") = 1
Response.Cookie("dinkaka")("counter").Expires = Date + 1000
End I
???
Bara en fråga
Varför
Response.Cookie("dinkaka")("counter") = Request.Cookie("dinkaka")("counter") --1
och inte
Response.Cookie("dinkaka")("counter") = Request.Cookie("dinkaka")("counter") +1
gör det någon skillnad..
Tror att om man skriver + så kan det konkateneras, men skriver man -- så tvingas det att matematiskt adderas. :)
@ndersMedlem sedan juni 200032 969 inlägg Man ska alltid se till att ha rätt subtyper på de variabler man arbetar med.
Att råka konkatenera med ett plustecken för att något av värdena är en sträng, är det värre än att tvinga fram ett type mismatch för att man försöker tvinga en addition till nämnda sträng?
Alltid typkonvertering om man inte är säker på vad man jobbar med.
Alltså: Använd plustecken för att addera tal. Använd ampersand (&) för att konkatenera strängar, och se till att värdena är av de subtyper du och funktionerna förväntar sig.
Mvh,
Vilka typer.. svarar så fort.. :P
Tack.. då vet jag det.
Håller med snabel. CLng() är en schysst funktion för att slippa kludd. :)
@ndersMedlem sedan juni 200032 969 inlägg Jag skriver bara vad jag tycker är rätt, så möt gärna mina argument, och rätta mig om jag har fel, ni där ute.
Mvh,
Ska man addera, subtrahera och göra andra matematiska saker så bör det vara tal man jobbar med och inte strängar. :)
Sen så förespråkar jag CLng och inte CInt som man ser mycket av. Detta p.g.a. CInt's begränsning på 32 767. Har man ett databasfält av typen int som är incremenerande så kan det ju gå över 32 767. Många småsystem kanske inte går över det, men skulle det göra det så är det inte kul att behöva ändra överallt. :)
Började leta i min första ASP bok här är en kod:
<%
If Request.Cookies("KAKA_namn") = "" And Request.Form("namn") = "" Then
Response.Redirect "KAKANY.ASP"
End If
If Request.Cookies("KAKA_namn") = "" Or Not Request.Form("namn") = "" Then
namn = Request.Form("namn")
Response.Cookies("KAKA_namn") = namn
Response.Cookies("KAKA_forsta") = Now
Response.Cookies("KAKA_senast") = Now
Response.Cookies("KAKA_antal") = "1"
forsta = Now
senast = Now
antal = 1
Else
namn = Request.Cookies("KAKA_namn")
senast = Request.Cookies("KAKA_senast")
forsta = Request.Cookies("KAKA_forsta")
antal = Request.Cookies("KAKA_antal")
antal = antal + 1
Response.Cookies("KAKA_senast") = Now
Response.Cookies("KAKA_antal") = antal
End If
Response.Cookies("KAKA_namn").Expires = "April 30, 2001"
Response.Cookies("KAKA_forsta").Expires = "April 30, 2001"
Response.Cookies("KAKA_senast").Expires = "April 30, 2001"
Response.Cookies("KAKA_antal").Expires = "April 30, 2001"
%>
<HTML><HEAD><TITLE>Baka baka kaka...</TITLE></HEAD>
<BODY>
<CENTER>
<H1>Välkommen igen <%=namn%></H1>
<TABLE BORDER = 1>
<TR>
<TD>Första gången du besökte sidan var:
<TD><%=forsta%>
</TR>
<TR>
<TD>Senaste gången du besökte sidan var:
<TD><%=senast%>
</TR>
<TR>
<TD>Totalt har du varit på denna sida:
<TD><%=antal%> gånger
</TR>
</TABLE>
<BR><BR>
<A HREF = "KAKA.ASP">Ladda om denna sida!</A>
</BODY></HTML>