View previous topic :: View next topic |
Author |
Message |
zvone
Joined: 09 Sep 2003 Posts: 160 Location: Zg
|
Posted: 30.08.2005 19:55 Post subject: ko koga jebe |
|
|
Code: |
If IsNull(Request.Cookies("brojac_posjeta")("datum")) Then
Response.Cookies("brojac_posjeta")("datum") = Date()
Response.Cookies("brojac_posjeta").Expires = Now() + 365
intBroj_posjeta = rs("broj_posjeta") + 1
strSQL = "UPDATE brojac SET broj_posjeta = " & intBroj_posjeta & " WHERE id = 1"
dbConn.Execute(strSQL)
Else
If Request.Cookies("brojac_posjeta")("datum") = Date() Then
intBroj_posjeta = rs("broj_posjeta") + 1
strSQL = "UPDATE brojac SET broj_posjeta = " & intBroj_posjeta & " WHERE id = 1"
dbConn.Execute(strSQL)
Response.Cookies("brojac_posjeta")("datum") = Date()
Response.Cookies("brojac_posjeta").Expires = Now() + 365
End if
End if
intBroj_posjeta_ukupno = rs("broj_posjeta")
Response.Write "Ova stranica posjećena je " & intBroj_posjeta_ukupno & " puta i u cookie je zapisano" & Date()
%>
|
Ovaj jednostavan brojac sam ja napravio i sad mene zanima zašto on meni zbraja svaki refresh, a trebao bi zbrajati unique posjete ... |
_________________ Odin's descendant |
|
Back to top |
|
|
vedran
Joined: 08 Sep 2003 Posts: 458
|
Posted: 01.09.2005 09:28 Post subject: |
|
|
Rano mi je jos da to analiziram, ali koliko vidim ti u oba slučaja zapisujes posjet:
intBroj_posjeta = rs("broj_posjeta") + 1
i kada ima user ima cookie i kada nema, pa je logicno da radi kao hit counter. |
|
|
Back to top |
|
|
tubak
Joined: 14 Mar 2005 Posts: 133 Location: Istra
|
Posted: 01.09.2005 10:53 Post subject: |
|
|
Quote: | <SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
dim dbConn 'connection objekt
dim connstring 'connection string
set dbConn=server.createobject("ADODB.Connection")
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("imebaze.mdb")
Session.Timeout = 20
Application.Lock
strSQL = "UPDATE brojac SET broj_posjeta=broj_posjeta+1 WHERE id = 1"
dbConn.Execute(strSQL)
Application.UnLock
End Sub
</SCRIPT> |
Trebao bis kreirati u root direktoriju file global.asa i u njega pejstat gornji sadrzaj! Ovako ne trebas cookie. I cim ti netko pristupi stranicama odmah se u bazu upisuje +1 posjeta i dalje ako netko surfa 20 minuta (to je onaj Session.Timeout) nece se povecavati broj posjeta (za tog posjetioca, a nakon vremena definiranog u Session.Timeout taj ce isti korisnik upisati ponovo +1 posjetu, a ako stavis Session.Timeout na 60 to je sat vremena bez novog upisa za aktivnog korisnika), a ako taj netko ugasi browser i ponovno u novom browseru pristupi tim stranicama, brojac opet zbraja +1.
Prednost ovoga pristupa je jos u tome sto se dodaje jedan posjet bez obzira na koju se stranicu pristupi, tj. ne mora se nuzno doci na sajt preko index stranice, nego bilo koji prvi pristup dodaje +1 u bazu.
Sa global.asa treba samo imati na umu da je root na webu root od hosting paketa, dok je root lokalno (na IIS-u) root od default sajta, a ne od direktorija gdje se nalazi taj sajt dok ga kreiras i testiras. Drugim rijecima na IIS-u lokalno isti global.asa fajl opsluzuje sve ASP sajtove (direktorije) koji se nalaze u tom IIS-u, tako da se samo malo mora paziti kada ce se sta stavljati u global.asa i paziti da se ne sudaraju varijable, i taaako... dobro je. |
|
|
Back to top |
|
|
zvone
Joined: 09 Sep 2003 Posts: 160 Location: Zg
|
Posted: 01.09.2005 23:49 Post subject: |
|
|
Da ali u tom slučaju ako ja želim npr. da mi se broji posjet svaka 24 sata. On zgasi browser i ponovo pristupi stranici i counter će opet zbrojiti njegov posjet |
_________________ Odin's descendant |
|
Back to top |
|
|
|