Avatar billede lars-k Nybegynder
26. marts 2001 - 20:58 Der er 15 kommentarer og
1 løsning

Tæller laver rod i database!?

.......hvad går der liiiiiige galt her?

Jeg har en tæller og en tilknyttet fil, som er på et e-handelssted. Når der kommer en ny besøgende, skrives antallet af besøgende op med en i \"log/count.dat\". I samme mappe ligger min database, som bliver åbnet og ikke lukket igen, når der kommer en ny besøgende!? Og så går det helt i knudder, men trykker jeg på opdater i browseren, så virker siden igen - dog lukkes databasen ikke.

Koden til tælleren:

<%
\'taeller sessioner - ikke hits
Dim fs, file, visitorcount

    set fs = createobject(\"scripting.filesystemobject\")
    set file = fs.opentextfile(server.mappath(\"log/count.dat\"))
    visitorcount = cint(file.readline)
    if session(\"visitorcount\") = \"\" then
        session(\"visitorcount\") = visitorcount
        visitorcount = visitorcount + 1
        file.close
        set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
        file.writeline(visitorcount)
    end if
    file.close
    set fs = nothing

response.write visitorcount

%>

Hjælp!!!!!!!!!!!!!!! Jeg har næsten ikke mere hår at rive i.
Avatar billede kasseper Nybegynder
27. marts 2001 - 08:44 #1
og et dumt spg. du husker at lukke din database med base.close ik ?
Du har ikke \'On Error resume next\' på vel ?
Avatar billede lars-k Nybegynder
27. marts 2001 - 10:53 #2
Hej kasseper

Lukker databasen? Du mener vel ikke i forbindelse med ovenstående kode, vel. Og jo, \'On Error Resume Next\' har jeg i nogle andre tilknyttede filer. Kan det være grunden til, at det hele roder lidt? Det hele har virket uden problemer, men da jeg satte tælleren på, ville database ikke lukke.
Avatar billede ellebaek Nybegynder
27. marts 2001 - 11:00 #3
<%
\'taeller sessioner - ikke hits
Dim fs, file, visitorcount

    set fs = createobject(\"scripting.filesystemobject\")
    set file = fs.opentextfile(server.mappath(\"log/count.dat\"))
    visitorcount = cint(file.readline)
    if session(\"visitorcount\") = \"\" then
        session(\"visitorcount\") = visitorcount
        visitorcount = visitorcount + 1
        file.close
        set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
        file.writeline(visitorcount)
    end if
    file.close
    set fs = nothing

response.write visitorcount

%>

lav lidt om i den her, det er ikke så smart at du åbner textfilen, selvom den ikke skal bruges, i stedet så spørg efter sessionen først:

<%
\'taeller sessioner - ikke hits
Dim fs, file, visitorcount

if session(\"visitorcount\") = \"\" then

    set fs = createobject(\"scripting.filesystemobject\")
    set file = fs.opentextfile(server.mappath(\"log/count.dat\"))
    visitorcount = cint(file.readline)
   
        session(\"visitorcount\") = visitorcount
        visitorcount = visitorcount + 1
        file.close
        set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
        file.writeline(visitorcount)
file.close
    set fs = nothing   
end if
   

response.write visitorcount

%>
Avatar billede ellebaek Nybegynder
27. marts 2001 - 11:02 #4
og btw, det visitortal du får her, det er ikke det tal nr. brugeren selv har. Brugeren har kommer f.eks. ind efter bruger nr. 76, men får kun nr. 76 fordi du først ligger tallet til bagefter, byt om på disse linier ...:

        session(\"visitorcount\") = visitorcount
        visitorcount = visitorcount + 1
så det ser sådan ud:
       
    visitorcount = visitorcount + 1
        session(\"visitorcount\") = visitorcount

Avatar billede lars-k Nybegynder
27. marts 2001 - 11:28 #5
Hej ellebaek

Ja, fint nok. Nu åbner databasen ikke, men tælleren er ikke synlig på siden nu.
Avatar billede lars-k Nybegynder
27. marts 2001 - 11:36 #6
Denne fejlmeddelse kommer....

Microsoft VBScript runtime error \'800a004c\'
Path not found
D:\\WWW2\\PUNCTURESHOP\\SHOP\\../head.inc, line 49

Dette er linie 49:
set file = fs.opentextfile(server.mappath(\"log/count.dat\"))
Avatar billede lars-k Nybegynder
27. marts 2001 - 11:51 #7
Hej ellebaek

Kan man ikke via en global.asa skrive antallet af besøgende til en tekstfil? Altså som i ovenstående eksempel. Jeg tror, at det er stierne der driller lidt.
Jeg har en global.asa, der ser sådan ud. Kunne du måske fortælle mig, hvordan den skal se ud, hvis jeg skal skrive til filen \"count.dat\"?

Global.asa kode:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart
  Application.Lock
  Application(\"allUser\") = 0
  Application.UnLock
End Sub

Sub Session_OnStart
  Application.Lock
  Application(\"allUser\") = Application(\"allUser\") + 1
  Application.UnLock
End Sub

</SCRIPT>

Lars-k
Avatar billede ellebaek Nybegynder
27. marts 2001 - 17:41 #8
jo ...

kan jeg ikke forklare dig hvordan i morgen ??

Avatar billede lars-k Nybegynder
27. marts 2001 - 18:11 #9
Hej ellebaek

Jo, hvis du har tid vil det være fint. Jeg er på det meste af dagen......

Lars-k
Avatar billede ellebaek Nybegynder
28. marts 2001 - 10:03 #10
Sub Session_OnStart
  Application.Lock
  Application(\"allUser\") = Application(\"allUser\") + 1
  set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
        file.writeline(Application(\"allUser\"))

Application.UnLock
End Sub

Prøv dette ...
Avatar billede lars-k Nybegynder
28. marts 2001 - 10:47 #11
Der bliver skrevet til filen, men hvis serveren går ned, begynder tælleren så fra 0 eller det antal der står i filen \'count.dat\'?
Avatar billede lars-k Nybegynder
28. marts 2001 - 11:01 #12
Object required: \'fs\'

Denne fejlmeddelse fremkommer, når koden er uploaded. Det er ifm. linien:

set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
       

Avatar billede ellebaek Nybegynder
28. marts 2001 - 13:12 #13
hmmn ...
hvis serveren går ned skal du lave en tingest i den session_onStart der fortæller at mængden af brugere ikke er den dersens aplication, men i stedet textfilen. Kan du ikke lave det sådan så den laver en ny fil, der bare hedder antallet,uden efternavn ? så skulle det virke !
Avatar billede lars-k Nybegynder
28. marts 2001 - 13:16 #14
.......jo, nu kører det. Ellebaek, kan du ikke lige oprette et svar, så du kan få nogle point.

Lars-k
Avatar billede ellebaek Nybegynder
28. marts 2001 - 13:21 #15
jojo
Avatar billede lars-k Nybegynder
28. marts 2001 - 13:31 #16
Og tak for hjælpen!
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