Avatar billede timmwillum Nybegynder
24. august 2005 - 22:23 Der er 8 kommentarer og
1 løsning

Problemer med session

Er der nogen der kan fortælle mig hvorfor dette ikke virker? Ønsker at lave en tæller, der kun tæller besøg og ikke hits ...

If Session("navn") <> "ja" Then
    CountRS("CountVisits")    = CountRS("CountVisits") + 1
    'response.write "inde: " & Session("navn") & "<br>"
Else
    ' Vi "logger" vores bruger
    Session("navn") = "ja" 
    'response.write "else: " & Session("navn") & "<br>"
End if

Min session bliver slet ikke registreret, når jeg slår response.write sætningerne til ....?
Avatar billede busschou Praktikant
24. august 2005 - 23:06 #1
hvad er forskellen på at tælle besøg og tælle hits ?
Hvad er CountRS ? hvis det er et recordset fra en database kan du i hvert fald ikke umiddelbart lægge en til sådan der, så skal du lave en update ala
conn.execute("Update dinTabel Set CountVisits = CountVisits + 1")
Avatar billede busschou Praktikant
24. august 2005 - 23:07 #2
Du kan i øvrigt smart/snedigt tælle besøg gennem global.asa
Se evt. http://www.eksperten.dk/artikler/752 omkring dette
Der er nogle forskellige eksempler som er til at udbygge
Avatar billede busschou Praktikant
25. august 2005 - 07:13 #3
hmm jeg kan se her til morgen at lige det eksempel med at tælle besøg har jeg ikke med i mine eksempler, jeg har kun et eksempel hvor man tæller op og ned for at se de online brugere men det kan hurtigt rettes så det kun tæller op og ikke tæller ned, hvorved det tæller antal besøg
Med et besøg så fortolker jeg det som en ny session. Dvs hvis brugeren lukker browseren eller venter i 20min, og dernæst går ind på en side, så tæller det som et nyt besøg
Avatar billede busschou Praktikant
25. august 2005 - 07:19 #4
men i øvrigt så tror jeg du tjekker omvendt af det du ønsker
Du siger at hvis session("navn") er forskellig fra "ja" så er man inde, hvis ikke så er man ude og så sætter du den til "ja", men så er den jo ikke forskellig fra "ja" og du vil aldrig få at vide at man er inde :o)
Mon ikke du mener
----
if session("navn") = "ja" then
  // så er vi logget og der tælles ikke op
else
  session("navn") = "ja"
  // og tæl antal af besøgende op med en
end if
----
hvilket kan laves om til blot
----
// hvis ikke man er logget så sæt sessionen
if session("navn") <> "ja" then
  session("navn") = "ja"
  // og tæl antal af besøgende op med en
end if
Avatar billede timmwillum Nybegynder
25. august 2005 - 20:47 #5
Hej busschou

Tak for din indsats.

Hits er defineret som enhver aktiv handling på dit websted (download, klik, reload etc.). Med besøg mente jeg unikke besøg ... altså en besøgende tæller een gang (inden for et vist tidsrum - normalt svarende til en session = 20 min.). Statistisk set er det jo ret interessant.

Jeg kan ikke bruge global.asa, fordi der er tale om en side med flere forskellige brugere, som hver skal have egen tæller. I øvrigt en glimrende artikel, du der har forfattet.

Du ramte til gengæld plet mht. min if-sætning. Tænk at man kan stirre sig blind på noget så elementært ... men sådan er det jo bare engang imellem :-)

Man kan i øvrigt sagtens opdatere en db via et record set. Den fulde koder ser således ud og virker fint ... nu:

-----KODE-----
Set CountRS = Server.CreateObject("ADODB.RecordSet")
CountSQL = "SELECT * FROM tblSiteSettings WHERE UserName ='" & Request("UserName") & "'"
CountRS.CursorType = 2
CountRS.LockType = 3
CountRS.Open CountSQL, cString

CountRS("CountHits")    = CountRS("CountHits") + 1

If Session("navn") <> "ja" Then
    CountRS("CountVisits")    = CountRS("CountVisits") + 1
    Session("navn") = "ja" 
    'response.write "inde: " & Session("navn") & "<br>"
End if

CountRS.Update
CountRS.Close
Set CountRS = Nothing

-----KODE-----

Mange tak for hjælpen. Hvis du lige skriver et svar, sørger jeg straks for nogle points til dig.
Avatar billede busschou Praktikant
25. august 2005 - 21:44 #6
ja i den sammenhæng kan du selvfølgelig sagtens opdatere det :o)
Angående det med at du ikke kan benytte global.asa fordi det skal være til forskellige brugere, det kommer jo an på hvordan du ellers har det :o)
Hvis du fx logger folk ind igennem en html side, så kan du i global.asa opdatere statestikken for det brugernavn som er logget ind :o)

Men hvis du er tilfreds som det er nu så er det jo også fint, det vigtigste er jo at det virker :o)
Avatar billede timmwillum Nybegynder
26. august 2005 - 10:09 #7
Ja, systemet virker fint, som det er. Der er log-ind for brugerne. Men besøg og hits skal registreres for den enkelte brugers side ... altså beøgende (som ikke er logget ind eller på anden måde registreret).

Tak for hjælpen
Avatar billede busschou Praktikant
26. august 2005 - 10:28 #8
det var så lidt, tak for points :o)
Avatar billede timmwillum Nybegynder
26. august 2005 - 20:22 #9
Jeg kunne i øvrigt godt tænke mig, at bruge din artikel på mit web. Jeg har en større hjemmeside for webmasters. Hvis du er interesseret i at høre mere, så send en mail til mig på info<snabela>nowanet.dk
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