Simpel Statistieken Script 1.0.0
Sorry dit script heb ik hier geplaatst omdat ik veel voor mijn medemensen overhad echter het blijkt niet goed thuis te horen op deze site aldus de beheerder daarom verwijderd ik het bij deze. Google en zij zult vinden.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 43 reacties op 'Simpel statistieken script 100'
Gesponsorde koppelingen
Ik ga het toch maar vragen voor ik alles weer fout doe :-)
Het is als volgt ik heb m'n site zo dat ik de pagina's in verschillende mappen heb staan.
Als ik je goed begrijp zet je de pagina stats.php in de map include neer en dan vermelden op elke pagina?
Dus zo: include ("../include/stats.php");
Waar zet ik dan statistieken.php neer?
Ik dacht in de main root dus hier:
http://www.lissydesign.info/statistieken.php
Het is als volgt ik heb m'n site zo dat ik de pagina's in verschillende mappen heb staan.
Als ik je goed begrijp zet je de pagina stats.php in de map include neer en dan vermelden op elke pagina?
Dus zo: include ("../include/stats.php");
Waar zet ik dan statistieken.php neer?
Ik dacht in de main root dus hier:
http://www.lissydesign.info/statistieken.php
Thanx, dit is wat ik er van gemaakt heb: http://stats.andrieslouw.tk/
Ik heb nu de volgende uitbreidingen gemaakt zonder dat het aantal records in de database toeneemt. Er zijn 3 velden toegevoegd aan stats_paginas, nl. dagteller type bigint(20), gisteren type bigint(20) en gewijzigd type date.
Er wordt nu bijgehouden hits vandaag, hits gisteren en hits totaal per pagina, maar ook voor alle pagina's.
Je zou dit ook voor stats_sessies kunnen doen maar dan zal het aantal records wel toenemen in deze tabel omdat dan de records niet uniek zullen zijn op ip, maar op ip en pagina. Dus dit laat ik voorlopig achterwege.
Over een aantal dagen zal ik het hier publiceren.
Er wordt nu bijgehouden hits vandaag, hits gisteren en hits totaal per pagina, maar ook voor alle pagina's.
Je zou dit ook voor stats_sessies kunnen doen maar dan zal het aantal records wel toenemen in deze tabel omdat dan de records niet uniek zullen zijn op ip, maar op ip en pagina. Dus dit laat ik voorlopig achterwege.
Over een aantal dagen zal ik het hier publiceren.
The code:
TABLE
====
CREATE TABLE `stats_paginas` (
`id` bigint(20) NOT NULL auto_increment,
`pagina` varchar(250) NOT NULL default '',
`teller` bigint(20) NOT NULL default '0',
`dagteller` bigint(20) NOT NULL default '0',
`gisteren` bigint(20) NOT NULL default '0',
`gewijzigd` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`),
UNIQUE KEY `pagina` (`pagina`)
) TYPE=MyISAM
table stats_sessies not changed
stats.php
======
statistieken.php
==========
TABLE
====
CREATE TABLE `stats_paginas` (
`id` bigint(20) NOT NULL auto_increment,
`pagina` varchar(250) NOT NULL default '',
`teller` bigint(20) NOT NULL default '0',
`dagteller` bigint(20) NOT NULL default '0',
`gisteren` bigint(20) NOT NULL default '0',
`gewijzigd` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`),
UNIQUE KEY `pagina` (`pagina`)
) TYPE=MyISAM
table stats_sessies not changed
stats.php
======
Code (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
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
<?php
# Pagina bepalen
$pagina = ($sub);
# Kijken of pagina bestaat
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
$sql = "SELECT gewijzigd FROM stats_paginas WHERE pagina = '$pagina';";
$resultaat = mysql_query($sql);
# Nieuw of bijwerken
if($record = mysql_fetch_object($resultaat))
{ // bijwerken record
if ($record->gewijzigd != $datum)
{ // laatste hit was niet van vandaag, dus dagteller op 1 zetten
if ($record->gewijzigd != $datum_gisteren)
{ // gisteren geen hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = 0, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
else
{ // gisteren wel hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = dagteller, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
}
else
{ // laatste hit was van vandaag, dus dagteller ophogen en gisteren blijft ongewijzigd
$sql = "UPDATE stats_paginas SET teller = (teller + 1), dagteller = (dagteller + 1) WHERE pagina = '$pagina';";
}
}
else
{ // nieuw record, default waarde gisteren = 0
$sql = "INSERT INTO stats_paginas (pagina,teller,dagteller,gewijzigd) VALUES ('$pagina','1','1','$datum');";
}
mysql_query($sql);
# Bestaat sessie al?
if ($_SESSION['mi_stats_sessie'] != TRUE)
{
$ip = $_SERVER['REMOTE_ADDR'];
# Controlleren of IP al vaker is gebruikt
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies WHERE ip = '$ip';";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if ($record->aantal == 0)
{
$sql = "INSERT INTO stats_sessies (ip, teller) VALUES ('$ip','1');";
}
else
{
$sql = "UPDATE stats_sessies SET teller = (teller + 1) WHERE ip = '$ip';";
}
mysql_query($sql);
$_SESSION['mi_stats_sessie'] = TRUE;
}
?>
# Pagina bepalen
$pagina = ($sub);
# Kijken of pagina bestaat
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
$sql = "SELECT gewijzigd FROM stats_paginas WHERE pagina = '$pagina';";
$resultaat = mysql_query($sql);
# Nieuw of bijwerken
if($record = mysql_fetch_object($resultaat))
{ // bijwerken record
if ($record->gewijzigd != $datum)
{ // laatste hit was niet van vandaag, dus dagteller op 1 zetten
if ($record->gewijzigd != $datum_gisteren)
{ // gisteren geen hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = 0, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
else
{ // gisteren wel hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = dagteller, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
}
else
{ // laatste hit was van vandaag, dus dagteller ophogen en gisteren blijft ongewijzigd
$sql = "UPDATE stats_paginas SET teller = (teller + 1), dagteller = (dagteller + 1) WHERE pagina = '$pagina';";
}
}
else
{ // nieuw record, default waarde gisteren = 0
$sql = "INSERT INTO stats_paginas (pagina,teller,dagteller,gewijzigd) VALUES ('$pagina','1','1','$datum');";
}
mysql_query($sql);
# Bestaat sessie al?
if ($_SESSION['mi_stats_sessie'] != TRUE)
{
$ip = $_SERVER['REMOTE_ADDR'];
# Controlleren of IP al vaker is gebruikt
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies WHERE ip = '$ip';";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if ($record->aantal == 0)
{
$sql = "INSERT INTO stats_sessies (ip, teller) VALUES ('$ip','1');";
}
else
{
$sql = "UPDATE stats_sessies SET teller = (teller + 1) WHERE ip = '$ip';";
}
mysql_query($sql);
$_SESSION['mi_stats_sessie'] = TRUE;
}
?>
statistieken.php
==========
Code (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
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
<?php
include('includes/template.php');
include('includes/startpagina_header.inc.php');
echo "<h1>Statistieken</h1>";
echo "<h2>Per pagina</h2>";
$sql = "SELECT * FROM stats_paginas ORDER BY gewijzigd DESC, dagteller DESC, gisteren DESC, teller DESC";
$resultaat = mysql_query($sql);
$i = 0;
$hits_totaal = 0;
$hits_vandaag = 0;
$hits_gisteren = 0;
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
echo "<table>";
echo "<tr><th>#</th><th>Pagina</th><th>Hits vandaag</th><th>Hits gisteren</th><th>Hits totaal</th></tr>";
while ($record = mysql_fetch_object($resultaat))
{
if ($record->gewijzigd != $datum)
{ // dagteller is niet van vandaag
if ($record->gewijzigd == $datum_gisteren)
{ // dagteller is van gisteren
$record->gisteren = $record->dagteller;
}
else
{ // dagteller is ouder dan gisteren
$record->gisteren = 0;
}
$record->dagteller = 0;
}
$hits_vandaag = $hits_vandaag + $record->dagteller;
$hits_gisteren = $hits_gisteren + $record ->gisteren;
$hits_totaal = $hits_totaal + $record->teller;
$i ++;
echo "<tr><td>" . $i . "</td><td>" . "<a href=http://www.startmenus.nl/index.php?page=" . $record->pagina . " target=_blank>" . $record->pagina . "</a>" . "</td><td>" . $record->dagteller . "</td><td>" . $record->gisteren . "</td><td>" . $record->teller . "</td></tr>";
}
echo "</table>";
echo "<h2>Alle pagina's</h2>";
echo "<table>";
echo "<tr><td>Hits vandaag</td><td>" . $hits_vandaag . "</td></tr>";
echo "<tr><td>Hits gisteren</td><td>" . $hits_gisteren . "</td></tr>";
echo "<tr><td>Hits totaal</td><td>" . $hits_totaal . "</td></tr>";
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Unieke bezoekers op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT SUM(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Aantal sessies op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT AVG(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Gemiddeld aantal sessies per IP adres</td><td>" . number_format($record->aantal,'',',','.') . "</td></tr>";
$sql = "SELECT MAX(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Hoogste aantal sessies per IP adres</td><td>" . $record->aantal . "</td></tr>";
echo "</table>";
echo "<p> </p>";
?>
include('includes/template.php');
include('includes/startpagina_header.inc.php');
echo "<h1>Statistieken</h1>";
echo "<h2>Per pagina</h2>";
$sql = "SELECT * FROM stats_paginas ORDER BY gewijzigd DESC, dagteller DESC, gisteren DESC, teller DESC";
$resultaat = mysql_query($sql);
$i = 0;
$hits_totaal = 0;
$hits_vandaag = 0;
$hits_gisteren = 0;
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
echo "<table>";
echo "<tr><th>#</th><th>Pagina</th><th>Hits vandaag</th><th>Hits gisteren</th><th>Hits totaal</th></tr>";
while ($record = mysql_fetch_object($resultaat))
{
if ($record->gewijzigd != $datum)
{ // dagteller is niet van vandaag
if ($record->gewijzigd == $datum_gisteren)
{ // dagteller is van gisteren
$record->gisteren = $record->dagteller;
}
else
{ // dagteller is ouder dan gisteren
$record->gisteren = 0;
}
$record->dagteller = 0;
}
$hits_vandaag = $hits_vandaag + $record->dagteller;
$hits_gisteren = $hits_gisteren + $record ->gisteren;
$hits_totaal = $hits_totaal + $record->teller;
$i ++;
echo "<tr><td>" . $i . "</td><td>" . "<a href=http://www.startmenus.nl/index.php?page=" . $record->pagina . " target=_blank>" . $record->pagina . "</a>" . "</td><td>" . $record->dagteller . "</td><td>" . $record->gisteren . "</td><td>" . $record->teller . "</td></tr>";
}
echo "</table>";
echo "<h2>Alle pagina's</h2>";
echo "<table>";
echo "<tr><td>Hits vandaag</td><td>" . $hits_vandaag . "</td></tr>";
echo "<tr><td>Hits gisteren</td><td>" . $hits_gisteren . "</td></tr>";
echo "<tr><td>Hits totaal</td><td>" . $hits_totaal . "</td></tr>";
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Unieke bezoekers op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT SUM(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Aantal sessies op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT AVG(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Gemiddeld aantal sessies per IP adres</td><td>" . number_format($record->aantal,'',',','.') . "</td></tr>";
$sql = "SELECT MAX(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Hoogste aantal sessies per IP adres</td><td>" . $record->aantal . "</td></tr>";
echo "</table>";
echo "<p> </p>";
?>
Ik krijg de volgende foutmeldingen:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/raymond/www/stats.php on line 13
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/raymond/www/stats.php on line 35
Wat gaat er mis?
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/raymond/www/stats.php on line 13
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/raymond/www/stats.php on line 35
Wat gaat er mis?
je hebt dit in je script:
# Pagina bepalen
$pagina = ($_SERVER['SCRIPT_NAME'] . "?" . $_SERVER['QUERY_STRING']);
Nou krijg ik op statistieken bij elke pagina een ? erachter. Bijv:
index.php? 1
blabla.php? 1
pagina.php?id=1 1
etc.
als je nou dat vervangt door:
# Pagina bepalen
if(!empty($_SERVER['QUERY_STRING']))
$pagina = ($_SERVER['SCRIPT_NAME'] . "?" . $_SERVER['QUERY_STRING']);
else
$pagina = ($_SERVER['SCRIPT_NAME']);
Komt de ? alleen erachter als het nodig is.
# Pagina bepalen
$pagina = ($_SERVER['SCRIPT_NAME'] . "?" . $_SERVER['QUERY_STRING']);
Nou krijg ik op statistieken bij elke pagina een ? erachter. Bijv:
index.php? 1
blabla.php? 1
pagina.php?id=1 1
etc.
als je nou dat vervangt door:
# Pagina bepalen
if(!empty($_SERVER['QUERY_STRING']))
$pagina = ($_SERVER['SCRIPT_NAME'] . "?" . $_SERVER['QUERY_STRING']);
else
$pagina = ($_SERVER['SCRIPT_NAME']);
Komt de ? alleen erachter als het nodig is.
Je hebt al enige vorm van output gedaan voordat session_start() kwam: http://www.phphulp.nl/php/faq/#2
--------------- statistieken php -------------------
----------------- stats php---------------
Code (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
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
<?php
//-- require db connectie
require("statistieken/database.php");
//include('includes/template.php');
//include('includes/startpagina_header.inc.php');
echo "<h1>Statistieken</h1>";
echo "<h2>Per pagina</h2>";
$sql = "SELECT * FROM stats_paginas ORDER BY gewijzigd DESC, dagteller DESC, gisteren DESC, teller DESC";
$resultaat = mysql_query($sql);
$i = 0;
$hits_totaal = 0;
$hits_vandaag = 0;
$hits_gisteren = 0;
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
echo "<table>";
echo "<tr><th>#</th><th>Pagina</th><th>Hits vandaag</th><th>Hits gisteren</th><th>Hits totaal</th></tr>";
while ($record = mysql_fetch_object($resultaat))
{
if ($record->gewijzigd != $datum)
{ // dagteller is niet van vandaag
if ($record->gewijzigd == $datum_gisteren)
{ // dagteller is van gisteren
$record->gisteren = $record->dagteller;
}
else
{ // dagteller is ouder dan gisteren
$record->gisteren = 0;
}
$record->dagteller = 0;
}
$hits_vandaag = $hits_vandaag + $record->dagteller;
$hits_gisteren = $hits_gisteren + $record ->gisteren;
$hits_totaal = $hits_totaal + $record->teller;
$i ++;
echo "<tr><td>" . $i . "</td><td>" . "<a href=http://www.startmenus.nl/index.php?page=" . $record->pagina . " target=_blank>" . $record->pagina . "</a>" . "</td><td>" . $record->dagteller . "</td><td>" . $record->gisteren . "</td><td>" . $record->teller . "</td></tr>";
}
echo "</table>";
echo "<h2>Alle pagina's</h2>";
echo "<table>";
echo "<tr><td>Hits vandaag</td><td>" . $hits_vandaag . "</td></tr>";
echo "<tr><td>Hits gisteren</td><td>" . $hits_gisteren . "</td></tr>";
echo "<tr><td>Hits totaal</td><td>" . $hits_totaal . "</td></tr>";
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Unieke bezoekers op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT SUM(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Aantal sessies op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT AVG(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Gemiddeld aantal sessies per IP adres</td><td>" . number_format($record->aantal,'',',','.') . "</td></tr>";
$sql = "SELECT MAX(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Hoogste aantal sessies per IP adres</td><td>" . $record->aantal . "</td></tr>";
echo "</table>";
echo "<p> </p>";
?>
//-- require db connectie
require("statistieken/database.php");
//include('includes/template.php');
//include('includes/startpagina_header.inc.php');
echo "<h1>Statistieken</h1>";
echo "<h2>Per pagina</h2>";
$sql = "SELECT * FROM stats_paginas ORDER BY gewijzigd DESC, dagteller DESC, gisteren DESC, teller DESC";
$resultaat = mysql_query($sql);
$i = 0;
$hits_totaal = 0;
$hits_vandaag = 0;
$hits_gisteren = 0;
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
echo "<table>";
echo "<tr><th>#</th><th>Pagina</th><th>Hits vandaag</th><th>Hits gisteren</th><th>Hits totaal</th></tr>";
while ($record = mysql_fetch_object($resultaat))
{
if ($record->gewijzigd != $datum)
{ // dagteller is niet van vandaag
if ($record->gewijzigd == $datum_gisteren)
{ // dagteller is van gisteren
$record->gisteren = $record->dagteller;
}
else
{ // dagteller is ouder dan gisteren
$record->gisteren = 0;
}
$record->dagteller = 0;
}
$hits_vandaag = $hits_vandaag + $record->dagteller;
$hits_gisteren = $hits_gisteren + $record ->gisteren;
$hits_totaal = $hits_totaal + $record->teller;
$i ++;
echo "<tr><td>" . $i . "</td><td>" . "<a href=http://www.startmenus.nl/index.php?page=" . $record->pagina . " target=_blank>" . $record->pagina . "</a>" . "</td><td>" . $record->dagteller . "</td><td>" . $record->gisteren . "</td><td>" . $record->teller . "</td></tr>";
}
echo "</table>";
echo "<h2>Alle pagina's</h2>";
echo "<table>";
echo "<tr><td>Hits vandaag</td><td>" . $hits_vandaag . "</td></tr>";
echo "<tr><td>Hits gisteren</td><td>" . $hits_gisteren . "</td></tr>";
echo "<tr><td>Hits totaal</td><td>" . $hits_totaal . "</td></tr>";
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Unieke bezoekers op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT SUM(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Aantal sessies op IP adres</td><td>" . $record->aantal . "</td></tr>";
$sql = "SELECT AVG(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Gemiddeld aantal sessies per IP adres</td><td>" . number_format($record->aantal,'',',','.') . "</td></tr>";
$sql = "SELECT MAX(teller) AS aantal FROM stats_sessies;";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
echo "<tr><td>Hoogste aantal sessies per IP adres</td><td>" . $record->aantal . "</td></tr>";
echo "</table>";
echo "<p> </p>";
?>
----------------- stats php---------------
Code (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
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
<?php
//-- require db connectie
require("statistieken/database.php");
# Pagina bepalen
$pagina = ($sub);
# Kijken of pagina bestaat
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
$sql = "SELECT gewijzigd FROM stats_paginas WHERE pagina = '$pagina';";
$resultaat = mysql_query($sql);
# Nieuw of bijwerken
if($record = mysql_fetch_object($resultaat))
{ // bijwerken record
if ($record->gewijzigd != $datum)
{ // laatste hit was niet van vandaag, dus dagteller op 1 zetten
if ($record->gewijzigd != $datum_gisteren)
{ // gisteren geen hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = 0, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
else
{ // gisteren wel hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = dagteller, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
}
else
{ // laatste hit was van vandaag, dus dagteller ophogen en gisteren blijft ongewijzigd
$sql = "UPDATE stats_paginas SET teller = (teller + 1), dagteller = (dagteller + 1) WHERE pagina = '$pagina';";
}
}
else
{ // nieuw record, default waarde gisteren = 0
$sql = "INSERT INTO stats_paginas (pagina,teller,dagteller,gewijzigd) VALUES ('$pagina','1','1','$datum');";
}
mysql_query($sql);
# Bestaat sessie al?
if ($_SESSION['mi_stats_sessie'] != TRUE)
{
$ip = $_SERVER['REMOTE_ADDR'];
# Controlleren of IP al vaker is gebruikt
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies WHERE ip = '$ip';";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if ($record->aantal == 0)
{
$sql = "INSERT INTO stats_sessies (ip, teller) VALUES ('$ip','1');";
}
else
{
$sql = "UPDATE stats_sessies SET teller = (teller + 1) WHERE ip = '$ip';";
}
mysql_query($sql);
$_SESSION['mi_stats_sessie'] = TRUE;
}
?>
//-- require db connectie
require("statistieken/database.php");
# Pagina bepalen
$pagina = ($sub);
# Kijken of pagina bestaat
$datum = date("Y-m-d");
$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
$sql = "SELECT gewijzigd FROM stats_paginas WHERE pagina = '$pagina';";
$resultaat = mysql_query($sql);
# Nieuw of bijwerken
if($record = mysql_fetch_object($resultaat))
{ // bijwerken record
if ($record->gewijzigd != $datum)
{ // laatste hit was niet van vandaag, dus dagteller op 1 zetten
if ($record->gewijzigd != $datum_gisteren)
{ // gisteren geen hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = 0, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
else
{ // gisteren wel hits
$sql = "UPDATE stats_paginas SET teller = (teller + 1), gisteren = dagteller, dagteller = 1, gewijzigd = '$datum' WHERE pagina = '$pagina';";
}
}
else
{ // laatste hit was van vandaag, dus dagteller ophogen en gisteren blijft ongewijzigd
$sql = "UPDATE stats_paginas SET teller = (teller + 1), dagteller = (dagteller + 1) WHERE pagina = '$pagina';";
}
}
else
{ // nieuw record, default waarde gisteren = 0
$sql = "INSERT INTO stats_paginas (pagina,teller,dagteller,gewijzigd) VALUES ('$pagina','1','1','$datum');";
}
mysql_query($sql);
# Bestaat sessie al?
if ($_SESSION['mi_stats_sessie'] != TRUE)
{
$ip = $_SERVER['REMOTE_ADDR'];
# Controlleren of IP al vaker is gebruikt
$sql = "SELECT COUNT(id) AS aantal FROM stats_sessies WHERE ip = '$ip';";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if ($record->aantal == 0)
{
$sql = "INSERT INTO stats_sessies (ip, teller) VALUES ('$ip','1');";
}
else
{
$sql = "UPDATE stats_sessies SET teller = (teller + 1) WHERE ip = '$ip';";
}
mysql_query($sql);
$_SESSION['mi_stats_sessie'] = TRUE;
}
?>
Jazeker kan dat. Dit kan bijvoorbeeld zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT * FROM stats_sessies GROUP BY ip";
$resultaat = mysql_query($sql);
while ($record = mysql_fetch_object($resultaat)
{
echo "<p>" . $record->ip . "</p>";
}
?>
$sql = "SELECT * FROM stats_sessies GROUP BY ip";
$resultaat = mysql_query($sql);
while ($record = mysql_fetch_object($resultaat)
{
echo "<p>" . $record->ip . "</p>";
}
?>
Mooi script! Werkt meteen. Toch nog een paar vragen:
- Is het ook mogelijk het aantal actueel online bezoekers weer te geven?
- Is het mogelijk het land van herkomst van de IP-adressen te bepalen?
- Zijn het hits of pageviews?
- Klopt de bepaling van de datum van gisteren? Wat geeft "$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));" op de eerste dag van een maand als datum voor de dag ervoor?
- Is het ook mogelijk het aantal actueel online bezoekers weer te geven?
- Is het mogelijk het land van herkomst van de IP-adressen te bepalen?
- Zijn het hits of pageviews?
- Klopt de bepaling van de datum van gisteren? Wat geeft "$datum_gisteren = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));" op de eerste dag van een maand als datum voor de dag ervoor?
@Rene
Klopt het dat je het script van Joel gebruikt?
1) wat versta je onder actueel, laatste 10 minuten? het script van joel maakt in iedergeval geen gebruik van datetime velden, dit zal je dus zeker moeten aanpassen.
2) ja en nee. echt goed mogelijk is het niet. echter diensten als maxmind e.d. (zoek op GeoIp) kunnen redelijk betrouwbaar een land van herkomst bepalen
3) pageviews
4) probeer het morgen zou ik zeggen, mocht het niet werken gebruik dan date('Y-m-d', strtotime("-1 month"))
Klopt het dat je het script van Joel gebruikt?
1) wat versta je onder actueel, laatste 10 minuten? het script van joel maakt in iedergeval geen gebruik van datetime velden, dit zal je dus zeker moeten aanpassen.
2) ja en nee. echt goed mogelijk is het niet. echter diensten als maxmind e.d. (zoek op GeoIp) kunnen redelijk betrouwbaar een land van herkomst bepalen
3) pageviews
4) probeer het morgen zou ik zeggen, mocht het niet werken gebruik dan date('Y-m-d', strtotime("-1 month"))
Om te reageren heb je een account nodig en je moet ingelogd zijn.
Inhoudsopgave
Labels
- Geen tags toegevoegd.
PHP hulp
0 seconden vanaf nu