Statistiekenscript
Met dit statistiekenscript kun je de volgende dingen op je site monitoren: Het aantal unieke bezoekers (op ip) Totaal aantal pageviews Pageviews per maand Totaal aantal bezoeken (als iemand 30 minuten niet op de website geweest is wordt een bezoek beëindigd, als hij terugkomt start een nieuw bezoek.) Het script is makkelijk uit te breiden. Het script werkt op MySQL Benodigde (phpmyadmin) query: -- phpMyAdmin SQL Dump -- version 2.11.7 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generatie Tijd: 28 Feb 2009 om 17:21 -- Server versie: 5.0.51 -- PHP Versie: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- -- -------------------------------------------------------- -- -- Tabel structuur voor tabel `stats_bezoeken` -- CREATE TABLE IF NOT EXISTS `stats_bezoeken` ( `id` int(11) NOT NULL auto_increment, `ipadres` varchar(15) NOT NULL, `laatste_bezoektijd` datetime NOT NULL, `bezoeken` int(8) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; -- -------------------------------------------------------- -- -- Tabel structuur voor tabel `stats_pageviews` -- CREATE TABLE IF NOT EXISTS `stats_pageviews` ( `id` int(6) NOT NULL auto_increment, `maand` int(2) NOT NULL, `jaar` int(2) NOT NULL, `views` int(12) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Pagina 1 die je op elke pagina in je site moet includen, die alles opslaat:
[code]
<?php
// Statistieken script by Ricardo
// Database invoegen
$mysqlnaam = "INVULLEN";
$mysqlwachtwoord = "INVULLEN";
$host = "localhost";
$db = "INVULLEN";
$dbhandle = mysql_connect($host, $mysqlnaam, $mysqlwachtwoord)
or die("De verbinding met de database is mislukt!");
$selected = mysql_select_db($db,$dbhandle)
or die("De betreffende database kon niet worden gevonden!");
//**************************************************
//*************************************************
// UNIEKE BEZOEKERS GEDEELTE
//*************************************************
// Benodigde variabelen defineren
$ipadres = $_SERVER['REMOTE_ADDR'];
$laatstebezoektijd = date('Y-m-d H:i:s');
$datumhalfuurterug = date('Y-m-d H:i:s',time() - 1800);
// Query 1 voor bezoekers
// **************
$bezoekquery1 = mysql_query("SELECT * FROM stats_bezoeken WHERE ipadres='$ipadres'");
$bezoekrij1 = mysql_fetch_array($bezoekquery1);
// ***************
if(mysql_num_rows($bezoekquery1) > 0)
{
if($bezoekrij1['laatste_bezoektijd'] < $datumhalfuurterug)
{
// Aantal bezoeken tot nu toe
$bezoeken = $bezoekrij1['bezoeken'];
// Meer dan een half uur geleden van het laatste bezoek, dus dit bezoek wordt gezien als nieuw, dus het bezoek van nu erbij optellen
$bezoeken++;
// Laatste bezoektijd en aantal bezoeken updaten
mysql_query("UPDATE stats_bezoeken SET `laatste_bezoektijd`='$laatstebezoektijd', `bezoeken`='$bezoeken' WHERE ipadres='$ipadres'");
echo "U bent al een half uur niet op onze site geweest";
}
else
{
// Laatste bezoektijd updaten
mysql_query("UPDATE stats_bezoeken SET `laatste_bezoektijd`='$laatstebezoektijd' WHERE ipadres='$ipadres'");
echo "U bent het afgelopen half uur op onze site geweest";
}
}
else
{
// Nieuw bezoek in db zetten
mysql_query("INSERT INTO stats_bezoeken (`ipadres`, `laatste_bezoektijd`, `bezoeken`) VALUES ('$ipadres', '$laatstebezoektijd', '1')");
echo "Dit is uw eerste bezoek, we hebben u toegevoegd in de database";
}
//**********************************************
//**********************************************
//// PAGEVIEWS PER MAAND GEDEELTE
//**********************************************
// Benodigde variabelen defineren
$maand = date('m');
$jaar = date('Y');
// Query 1 voor bezoekers
// **************
$pageviewsquery1 = mysql_query("SELECT * FROM stats_pageviews WHERE `maand`='$maand' AND `jaar`='$jaar'");
$pageviewsrij1 = mysql_fetch_array($pageviewsquery1);
// ***************
if(mysql_num_rows($pageviewsquery1) > 0)
{
// Huidige pageviews
$huidigepageviews = $pageviewsrij1['views'];
// Deze pageview erbij optellen
$huidigepageviews++;
// Query om pageviews één omhoog te brengen
mysql_query("UPDATE stats_pageviews SET views='$huidigepageviews' WHERE jaar='$jaar' AND maand='$maand'");
}
else
{
// Nog geen pageviews voor deze maand, nieuwe record in db zetten
mysql_query("INSERT INTO stats_pageviews (`maand`, `jaar`, `views`) VALUES ('$maand', '$jaar', '1')");
}
//*************************************************
//*************************************************
//*************************************************
// PAGEVIEWS ALTIJD
//************************************************
// Query 1 voor bezoekers
// **************
$pageviewsquery2 = mysql_query("SELECT * FROM stats_pageviews WHERE `maand`='0' AND `jaar`='0'");
$pageviewsrij2 = mysql_fetch_array($pageviewsquery2);
// ***************
if(mysql_num_rows($pageviewsquery2) > 0)
{
// Huidige pageviews
$huidigepageviews2 = $pageviewsrij2['views'];
// Deze pageview erbij optellen
$huidigepageviews2++;
// Query om pageviews één omhoog te brengen
mysql_query("UPDATE stats_pageviews SET views='$huidigepageviews2' WHERE jaar='0' AND maand='0'");
}
else
{
// Nog geen pageviews voor deze maand, nieuwe record in db zetten
mysql_query("INSERT INTO stats_pageviews (`maand`, `jaar`, `views`) VALUES ('0', '0', '1')");
}
//*************************************************
?>
[/code]
Pagina om de statistieken te bekijken:
[code]
<?php
// Stats overzicht
$mysqlnaam = "INVULLEN";
$mysqlwachtwoord = "INVULLEN";
$host = "localhost";
$db = "INVULLEN";
// Pageviews per maand gedeelte
$bezoekenquery1 = mysql_query("SELECT * FROM stats_bezoeken");
// Bezoeken tellen
$bezoeken = mysql_num_rows($bezoekenquery1);
echo "Totaal aantal unieke bezoekers op de site: ".$bezoeken;
echo "<br>";
echo "<br>";
// Pageviews gedeelte
$pageviewsquery1 = mysql_query("SELECT * FROM stats_pageviews");
while($pageviewsrij1 = mysql_fetch_array($pageviewsquery1))
{
$maand = $pageviewsrij1['maand'];
$jaar = $pageviewsrij1['jaar'];
if($maand == "0" && $jaar == "0")
{
echo "Totaal aantal pageviews : ".$pageviewsrij1['views']."<br>";
}
else
{
if($maand == "1") { $maand = "Januari"; }
elseif($maand == "2") { $maand = "Februari";}
elseif($maand == "3") { $maand = "Maart";}
elseif($maand == "4") { $maand = "April";}
elseif($maand == "5") { $maand = "Mei";}
elseif($maand == "6") { $maand = "Juni";}
elseif($maand == "7") { $maand = "Juli";}
elseif($maand == "8") { $maand = "Augustus";}
elseif($maand == "9") { $maand = "September";}
elseif($maand == "10") { $maand = "Oktober";}
elseif($maand == "11") { $maand = "November";}
elseif($maand == "12") { $maand = "December"; }
else { $maand = "Error in de maanden";}
echo "Pageviews in de maand ".$maand." ".$jaar." : ".$pageviewsrij1['views']."<br>";
}
}
// Pageviews per maand gedeelte
$bezoekenquery1 = mysql_query("SELECT * FROM stats_bezoeken");
// Bezoeken tellen
$bezoeken = mysql_num_rows($bezoekenquery1);
$totaalbezoeken = 0;
while($bezoekenrij2 = mysql_fetch_array($bezoekenquery1))
{
$rijbezoeken = $bezoekenrij2['bezoeken'];
$totaalbezoeken = $totaalbezoeken + $rijbezoeken;
}
echo "Totaal aantal bezoeken op deze site: ".$totaalbezoeken;
echo "<br>";
?>
[/code]
Reacties
0