webForumDet fria alternativet

Besöks räknare ? (Global.asa)

ASP

9 svar · 466 visningar · startad av Tobbster

Medlem sedan mars 2001309 inlägg
Frågan#1

Jag försöker få en enkel besöks räknare att funka men det vill sig inte !

Koden ser ut så här!

Global.asa


<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' Start count script
        myFile = Server.MapPath("count.txt")

        ' create counter object
        Set objCount = Server.CreateObject("Scripting.FileSystemObject")
        Set myCountFile = objCount.OpenTextFile(myFile)

        ' check for counter cookie
        If Request.Cookies("counter") = "1" Then

                Application.Lock

                        Application("counter") = CInt(myCountFile.ReadLine)

                        myCountFile.Close
                        Set myCountFile = nothing

                Application.UnLock

        Else

                Response.Cookies("counter") = "1"
                Response.Cookies("counter").Expires = DateAdd("d",1,Now())

        Application.Lock

                Application("counter") = CInt(myCountFile.ReadLine + 1)

                myCountFile.Close
                Set myCountFile = nothing

                Set myCountFile = objCount.CreateTextFile (myFile,true)

                        myCountFile.WriteLine Application("counter")

                Set myCountFile = nothing

        Application.Unlock

End If

                Set     objCount = nothing

 
End Sub

Sub Session_OnEnd

End Sub

Sub Application_OnStart

End Sub

Sub Application_OnEnd

End Sub
</SCRIPT>

på Sidan där räknaren ska visas !

<Html>
<Head>
<link rel=stylesheet href="mall.css"typ="text/css">
<title>Presentation</title>
</Head>
       <BODY>
       <h1>&nbsp;</h1>

             <center>

             <table  VALIGN="top" ALIGN="center"   width ="450" height ="450" border ="0" >
                    <TR>
                        <td VALIGN="middle" ALIGN="center" width ="450" height ="338"><img src="bilder/"></td>
                     </TR>

                     <TR>
                        <td VALIGN="top" ALIGN="left" width ="450" height ="100">Här kommer det stå massor med saker om K.I.B <br>
                        Eller hur !</td>
                     </TR>
                      <TR>
                           <td class="nav" VALIGN="top" ALIGN="left" width ="450" height ="100"><h3> Senaste Matchen!</h3>
                           Matchen mot VTI gick bra.<br>Den slutade 5-2 till K.I.B <br>
                           <a class="blacksmall" href="senastematchen.html">Läs mer om matchen....  </td>

                      </TR>
                      <TR>
                          <td>
                          [red]    <%response.write "Antal Besökare: " %>
                              <%=Application("counter")%>  [/red] 
                           </td>
                      </TR>
               <table>

             </center>

       </BODY>
</HTML>

Global.asa

ligger i min root katalog på webhotellet där ligger även min count.txt.

Är det någon som kan se vad det är för fel !

Får inget felmedelande men det skrivs inget i textfilen och om jag skriver ditt en 1:a så får inte applikation variabeln det värdet ialla fall.

Medlem sedan mars 2001309 inlägg
#2

Nu är det så att om jag skriver en siffra i textfilen så visas det ibland !

Någon som vet vad problemet kan vara !

Problemet med att det inte räknas upp när nyabesökare varit på sidan kvarstår !

Inga felmeddelanden........

Medlem sedan apr. 20022 743 inlägg
#3

ehh.. en fråga bara:

varför i hela fridens skriver du:

<%response.write "Antal Besökare: " %>

???

Medlem sedan aug. 20011 099 inlägg
#4

det där var ju onödigt :birp
ju mindre <%%> desto bätrre prestanda på sidan!

Medlem sedan mars 2001309 inlägg
#5

Poffe

varför i hela fridens skriver du:

Det är för att förut såg den raden ut så här !

<%response.write "Antal Besökare: " &  Application("counter")%>

ibland skriver den ut ett nummer sist jag kollade så skrev den ut 1487, och så många besökare har jag inte haft sen igår !

Medlem sedan mars 2001196 inlägg
#6

:)
Ändrade lite i global.asa, satte dateadd("s")=sekund istället för d=day och kommenterade bort borttagningen av objektet...

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' Start count script
        myFile = Server.MapPath("count.txt")

        ' create counter object
        Set objCount = Server.CreateObject("Scripting.FileSystemObject")
        Set myCountFile = objCount.OpenTextFile(myFile)

        ' check for counter cookie
        If Request.Cookies("counter") = "1" Then

                Application.Lock

                        Application("counter") = CInt(myCountFile.ReadLine)

                        myCountFile.Close
                        Set myCountFile = nothing

                Application.UnLock

        Else

                Response.Cookies("counter") = "1"
                Response.Cookies("counter").Expires = DateAdd("s",1,Now())

        Application.Lock

                Application("counter") = CInt(myCountFile.ReadLine + 1)

                'myCountFile.Close
                'Set myCountFile = nothing

                Set myCountFile = objCount.CreateTextFile (myFile,true)

                        myCountFile.WriteLine Application("counter")

                Set myCountFile = nothing

        Application.Unlock

End If

                Set     objCount = nothing
Medlem sedan mars 2001309 inlägg
#7

Tyvärr hjälpte inte det lolukokasos...........

Någon som har någon annan ide?

@nders kanske, du brukar ju ha svar på det mesta.......

Medlem sedan juni 200032 967 inlägg
#8

Tobbster skrev:

@nders kanske, du brukar ju ha svar på det mesta.......

Det tar jag som en komplimang. :)

Jag sneglade lite på koden, och har ett par anmärkningar.

  1. Använd CLng() istället för CInt(). En integer sträcker sig till 32768, sedan får du ett felmeddelande.
  2. När du räknar upp så har du +1 innanför parentesen. Du försöker alltså lägga till något till ett värde som inte nödvändigtvis är ett tal. Flytta ut till utanför parentesen. Application("counter") = CLng(myCountFile.ReadLine) + 1

Jag tror visserligen inte att detta kommer lösa problemet, men ändå.

Prova att köra koden på en vanlig asp-sida, då det är lättare att se vad som händer, och lättare att felsöka.

mvh,

Medlem sedan mars 2001196 inlägg
#9

När jag kör koden lokalt enligt mitt inlägg ovan fungerar det alldeles utmärkt. Är det samma problem även när du testar den koden?

Medlem sedan mars 2001309 inlägg
#10

som svar på Lukas inlägg så !

JA det är samma problem då ........

Tackar @nders för din påpekande !

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)