<?
/********** MySQL **********

CREATE TABLE `bezoek` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(50) NOT NULL,
  `datum` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

********** MySQL ***********/



/********* connect.php ******
*********** Grafiek *********
********** connect.php ******/

$host = ""; // hostname
$db = ""; // database
$user=""; // username
$pass=""; // wachtwoord
$connectie = @mysql_connect ($host, $user, $pass) or die('ERROR: Kan geen verbinding maken met de database'); // onderdrukken van fouten zodat bij eventuele fouten bezoeker geen belangrijke informatie krijgt
@mysql_select_db ($db, $connectie) or die('ERROR: Kan de database niet vinden');



/********** tel.php **********
******** Tel Bezoekers *******
********** tel.php ***********/

include_once("connect.php");
$ip = $_SERVER['REMOTE_ADDR']; // ip-adres
$nu = date("j n Y"); // huidige datum
$results = "SELECT ip FROM bezoek WHERE ip = '$ip' AND date_format(datum, '%e %c %Y') = '$nu'";
$check = mysql_query($results) or die ('Er is een fout opgetreden bij het uitvoeren van de query.');
if(mysql_num_rows($check)==0) // als het je eerste keer is dat je vandaag op deze pagina komt wordt de teller verhoogt
{
	$sql = "INSERT INTO bezoek VALUES ('', '$ip', now())";
	$query = mysql_query($sql) or die ('Er is een fout opgetreden bij het uitvoeren van de query.');
}



/********** afb.php **********
*********** Grafiek **********
********** afb.php ***********/

// connectie
include_once("connect.php");

// afbeelding maken
header("content-type: image/png"); // soort afbeelding
$image = imagecreate(426, 300); // grootte van de afbeelding (360*200)

// kleuren instellen (RGB waarden)
$achtergrond = imagecolorallocate($image, 234, 234, 234); // achtergrondkleur
$verticale = imagecolorallocate($image, 224, 224, 224); // horizontale en verticale rechten
$zwart = imagecolorallocate($image, 0, 0, 0); // tekst
$grey = imagecolorallocate($image, 180, 180, 180); // balkjes

// verticale strepen trekken
$a=63; // startpunt linker-verticale
for($i=0;$i<12;$i++)
{ 
	imageline($image, $a, 0, $a, 300, $verticale); 
	$a +=33; // afstand tot linkerkant telkens verhogen
} 

// horizontale strepen trekken
$b=0; // startpunt bovenste horizontale
for($i=0;$i<10;$i++)
{
	imageline($image,30,$b,426,$b,$verticale);
	$b +=30; // afstand tot bovenkant telkens verhogen
}

// gegevens uit database halen per maand en in array steken
$next = date("n")+1; // volgende maand
$vorig_jaar = date("Y")-1; // vorig jaar
$dit_jaar = date("Y"); // dit jaar
for($i=$next;$i<13;$i++)
{ // maanden van vorig jaar
	$sql = "SELECT id FROM bezoek WHERE date_format(datum, '%c') = '$i' AND date_format(datum, '%Y') = '$vorig_jaar'";
	$query = mysql_query($sql) or die(mysql_error());
	$aant_bez = mysql_num_rows($query);
	$maand_bez[] = $aant_bez; // aantallen in array steken
}
if($i==13)
{ // maanden dit jaar
	for($i=1;$i<$next;$i++)
	{
		$sql = "SELECT id FROM bezoek WHERE date_format(datum, '%c') = '$i' AND date_format(datum, '%Y') = '$dit_jaar'";
		$query = mysql_query($sql) or die(mysql_error());
		$aant_bez = mysql_num_rows($query);
		$maand_bez[] = $aant_bez; // aantallen in array steken
	}
}

// balken weergeven
$maximum=max($maand_bez); // getal selecteren van de maand met meeste bezoekers
$var_opt=34; // startpunt balk tot linker verticale streep
$var_opt2=59; // startpunt balk tot rechter verticale streep
for($i=0;$i<12;$i++)
{
	$hoogte=$maand_bez[$i]/$maximum*300; // hoogte van je balkje bepalen
	$hoogte=round($hoogte,0);
	$tot=300-$hoogte;
	imagefilledrectangle($image,$var_opt,$tot,$var_opt2,300,$grey); // balkje tekenen
	$var_opt+=33; // telkens 33 px opschuiven nr rechts
	$var_opt2+=33; // telkens 33 px opschuiven nr rechts
}

// namen van de maanden weergeven
$maanden_ned=array("Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December");
$maand_eng=date("n");
$a=38; // afstand tot linker verticale streep
for($i=$maand_eng;$i<12;$i++)
{
	$maand_ned=$maanden_ned[$i];
	$maand_ned=substr($maand_ned,0,3);
	imagestring($image, 2, $a, 283, $maand_ned, $zwart);
	$a +=33;
}
if($i==12)
{
	for($i=0;$i<$maand_eng;$i++)
	{
		$maand_ned=$maanden_ned[$i];
		$maand_ned=substr($maand_ned,0,3);
		imagestring($image, 2, $a, 283, $maand_ned, $zwart);
		$a +=33;
	}
}

// aantallen links plaatsen
$b=1;
for($i=10;$i>-1;$i--)
{ // 10 getallen weergeven, van boven naar beneden
	$getal=$maximum/10*$i; // getal berekenen
	imagestring($image, 1, 3, $b, $getal, $zwart);
	$b +=30;
}

// kader trekken rondom afbeelding
imagerectangle($image,30,0,425,299,$zwart);

imagepng($image); 
imagedestroy($image);
?>