25. juni 2003 - 12:03Der er
21 kommentarer og 1 løsning
Simple tekst counter, men begrænset skriverettigheder
Hej,
jeg sidder og mangler en tekst-counter. Ikke det helt store, men mit problem er at til den side jeg har er der begrænset adgang så jeg kan kunne skrive i min log mappe. Er det muligt at lave en counter der skriver til denne destination?
<% Function Counter() Dir = Server.Mappath("log/Counter.txt") Set File = CreateObject("Scripting.FileSystemObject") Set Count = File.OpenTextFile(Dir) Counter = Cint(Count.ReadLine) Count.Close If Session("Counter") = "" Then Session("Counter") = Counter Counter = Counter + 1 Set Count = File.CreateTextFile(Dir,true) Count.WriteLine(Counter) Count.Close End If Set File = Nothing Set Count = Nothing End Function %>
Lav en fil der hedder inc_counter.asp og indsæt flg. kode:
<% strDate = Day(Date) strOldDate = Request.Cookies("StarfleetRecords")("Dato") Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("counter.txt") Set f = fso.OpenTextFile(filespec,1) if cint(Request.Cookies("DinCounter")("Dato")) = strDate then Response.Write f.Readline & "<br>" f.Close else Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("counter.txt") Set f = fso.OpenTextFile(filespec,1) strOpdaterCounter = f.Readline + 1 Response.Write strOpdaterCounter & "<br>" Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("counter.txt") Set f = fso.OpenTextFile(filespec,2) f.WriteLine strOpdaterCounter f.close Response.Cookies("DinCounter")("Dato") = strDate Response.Cookies("DinCounter").Expires = Date+365 end if %>
Derefter opret counter.txt, indeholdende den værdi din counter skal starte ved, og lig den i samme mappe som inc_counter.asp.
For at få vist antallet af besøg på din hovedside skriver du:
<!--#include file="inc_counter.asp"-->
eller
Visitors: <!--#include file="inc_counter.asp"-->
for ligesom at gøre de besøgende opmærksom på det :) Denne counter er tildels reloadsikret, medmindre den besøgende går ud og sletter sine cookies, opdaterer din side, sletter sine cookies igen, opdaterer osv osv.
Håber det kan brugs.
PS: Hvis du vil kalde din "counter.txt" noget andet, så husk at ændre dette navn de steder du finder det i inc_counter.asp
Du kan eventuelt teste om det virker hvis datoen ændrer sig (gøres ved at "snyde" scriptet til at tro at datoen på serveren er anderledes end den i cookien)
Linie 2: strDate = Day(Date)+1
Upload, Reload siden en gang, og se om counteren tæller. Husk at rette linien tilbage efter testen til:
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.