Ik gebruik dit stukje script om m'n bezoekers te loggen:
(ik zie nu trouwens dat ik het opslaan van die unieke visits nog steeds in een file doe ipv de database..moet ik ook nog ff aanpassen :-)
Hij werkt uitstekend, op 1 klein dingetje na: als mensen mijn site binnen een framestructuur bekijken wordt iedere hit als unieke visit gezien. tenminste ik vermoed dat dat in deze gevallen gebeurd. Is namelijk twee gevallen gebeurd: 1x bij iemand die m'n site vanuit hotmail opende en 2x van iemand die bij http://ask.com/main/metaAnswer.asp vandaan kwam. en zag dat dat ook in een framstructuur gebeurt.
kan iemand mij uitleggen hoe dat komt?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
| <?php // ips of search engines, we want to skip these $skip_ip[] = "64.68.82"; $skip_ip[] = "65.214.36"; $skip_ip[] = "66.150.40"; $skip_ip[] = "66.196.72"; $skip_ip[] = "208.145.190"; $skip_ip[] = "216.239.46"; if ($REMOTE_ADDR != "62.108.21.134" && !in_array(substr($REMOTE_ADDR,0,-strlen(strrchr($REMOTE_ADDR, "."))),$skip_ip)) { // we're gonna check if this is the first time in this session the user accesses a page: if (!isset($HTTP_SESSION_VARS["u_counter"])) { // we add a unique visit and use this value as the user_id later on $u_counter = implode("", file($root."/include/visits.dat")) + 1; $fp = fopen($root."/include/visits.dat","w"); fputs($fp, trim($u_counter)); fclose($fp); session_register("u_counter"); } if ($REQUEST_URI != $HTTP_SESSION_VARS["last_page"]) { $last_page = $REQUEST_URI; session_register("last_page"); $convert_days = array( "Mon" => "1", "Tue" => "2", "Wed" => "3", "Thu" => "4", "Fri" => "5", "Sat" => "6", "Sun" => "7" ); $ip = getip(); $host = gethostbyaddr($REMOTE_ADDR); $browser = $HTTP_USER_AGENT; $to = $REQUEST_URI; if (eregi(".*/$", $to)) { $to = $to."index.php"; } $from = $HTTP_REFERER; if (eregi(".*/$", $from)) { $from = $from."index.php"; } $user_id = $u_counter; $year = date("Y"); $month = date(m); $day = date(d); $wd = date(D); $wday = $convert_days[$wd]; $our = date(H); $minute = date(i); $second = date(s); // opening a connection to mysql host if (@$dbif = mysql_pconnect("***","***","***")) { // performing the query $query = "INSERT INTO log (ip,host,browser,van,naar,user_id,year,month,wday,day,our,minute,second) VALUES ('$ip','$host','$browser','$from','$to','$user_id','$year','$month','$wday','$day','$our','$minute','$second') "; $result = mysql_db_query("***",$query) or die(mysql_error()); } } else { // this means the user refreshed the page, so we do nothing } } ?> |
(ik zie nu trouwens dat ik het opslaan van die unieke visits nog steeds in een file doe ipv de database..moet ik ook nog ff aanpassen :-)
Hij werkt uitstekend, op 1 klein dingetje na: als mensen mijn site binnen een framestructuur bekijken wordt iedere hit als unieke visit gezien. tenminste ik vermoed dat dat in deze gevallen gebeurd. Is namelijk twee gevallen gebeurd: 1x bij iemand die m'n site vanuit hotmail opende en 2x van iemand die bij http://ask.com/main/metaAnswer.asp vandaan kwam. en zag dat dat ook in een framstructuur gebeurt.
kan iemand mij uitleggen hoe dat komt?