26. marts 2001 - 20:58Der 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.
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.
<% \'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
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:
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
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 !
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.