PHP/Visit Counter
Written by: WimpySE , 2009-04-16 18:13:38
<?php
require_once("Connector.php");
ConnectDB();
$query_counts = "CREATE TABLE visit_counts (
id bigint(20) unsigned NOT NULL auto_increment,
ip varchar(50) NOT NULL,
visits bigint(20) unsigned NOT NULL,
pageloads bigint(20) unsigned NOT NULL,
date date NOT NULL,
PRIMARY KEY (id)
)";
if(mysql_query($query_counts))
{
echo "visit_counts was created!";
}
else
{
echo "Creation of visit_counts failed: " . mysql_error();
}
$query_ips = "CREATE TABLE visit_ips (
id bigint(20) unsigned NOT NULL auto_increment,
ip TEXT NOT NULL,
lastdate datetime NOT NULL,
firstdate date NOT NULL,
PRIMARY KEY (id)
)";
echo "<br /><br /><br />";
if(mysql_query($query_ips))
{
echo "visit_ips was created!";
}
else
{
echo "Creation of visit_ips failed: " . mysql_error();
}
mysql_close();
?>
<?php
require_once("Connector.php");
ConnectDB();
class Counter
{
function CountStats()
{
}
function CreateCounter($what)
{
}
}
$counter = new Counter(2, 'visits');
mysql_close();
?>
<?php
...
function CountStats()
{
$datetime = date('Y-m-d H:i:s');
$datetime = strtotime($datetime);
$datetimeCheck = $datetime - 3600;
$date = date('Y-m-d');
$date = strtotime($date);
$ip = $_SERVER['REMOTE_ADDR'];
}
...
?>
<?php
...
function CountStats()
{
...
$ip = $_SERVER['REMOTE_ADDR'];
$tbCounts = mysql_query("SELECT ip FROM visit_counts WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')");
if(mysql_num_rows($tbCounts) == 0)
{
$query = "INSERT INTO visit_counts(ip, visits, pageloads, date) VALUES('".$ip."', 1, 1, FROM_UNIXTIME('".$date."'))";
$result = mysql_query($query);
}
}
...
?>
<?php
...
function CountStats()
{
...
if($rowsExist == 0)
{
...
}
else
{
$result_bf = mysql_query("SELECT lastdate FROM visit_ips WHERE ip = '".$ip."' AND UNIX_TIMESTAMP(lastdate) > '".$datetimeCheck."'");
$rows_bf = mysql_num_rows($result_bf);
if($rows_bf == 0)
{
$query_up = "UPDATE visit_counts SET visits = visits + 1, pageloads = pageloads + 1 WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')";
$result_up = mysql_query($query_up);
}
else
{
$query_pl = "UPDATE visit_counts SET pageloads = pageloads + 1 WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')";
$result_pl = mysql_query($query_pl);
}
}
}
...
?>
<?php
...
function CountStats()
{
...
if($rowsExist == 0)
{
...
}
else
{
...
}
$tbIps = mysql_query("SELECT ip FROM visit_ips WHERE ip = '".$ip."'");
if(mysql_num_rows($tbIps) == 0)
{
$query = "INSERT INTO visit_ips VALUES(id, '".$ip."', FROM_UNIXTIME('".$datetime."'), FROM_UNIXTIME('".$date."'))";
$result = mysql_query($query);
}
else
{
$query = "UPDATE visit_ips SET lastdate = FROM_UNIXTIME('".$datetime."') WHERE ip = '".$ip."'";
$result = mysql_query($query);
}
}
...
?>
<?php
...
function CreateCounter($what)
{
$numberOfDigits = 8;
$fontsize = 12;
$result = mysql_query("SELECT SUM(".$what.") FROM visit_counts");
$count = mysql_fetch_array($result);
$count = $count['SUM('.$what.')'];
$digits = count(str_split($count));
$num = $numberOfDigits - $digits;
}
...
?>
<?php
...
function CreateCounter($what)
{
...
$num = $numberOfDigits - $digits;
$str = "";
for($i = 0; $i < $num; $i++)
{
$str .= 0;
}
$str .= $count;
}
...
?>
<?php
...
function CreateCounter($what)
{
...
$str .= $count;
$x = 70;
$y = 20;
$image = imagecreate($x, $y);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$font = "URL";
}
...
?>
<?php
...
function CreateCounter($what)
{
...
$font = "URL";
$txtbox = imagettfbbox($fontsize, 0, $font, $str);
$xc = ($x - $txtbox[4])/2;
$yc = ($y - $txtbox[5])/2;
imagettftext($image, $fontsize, 0, $xc, $yc, $black, $font, $str);
imagerectangle($image, 0, 0, $x-1, $y-1, $black);
header('Content-Type: image/gif');
imagegif($image);
imagedestroy($image);
}
...
?>
<?php
require_once("Connector.php");
ConnectDB();
class Counter
{
function CountStats()
{
$datetime = date('Y-m-d H:i:s');
$datetime = strtotime($datetime);
$datetimeCheck = $datetime - 3600;
$date = date('Y-m-d');
$date = strtotime($date);
$ip = $_SERVER['REMOTE_ADDR'];
$tbCounts = mysql_query("SELECT ip FROM visit_counts WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')");
if(mysql_num_rows($tbCounts) == 0)
{
$query = "INSERT INTO visit_counts(ip, visits, pageloads, date) VALUES('".$ip."', 1, 1, FROM_UNIXTIME('".$date."'))";
$result = mysql_query($query);
}
else
{
$result_bf = mysql_query("SELECT lastdate FROM visit_ips WHERE ip = '".$ip."' AND UNIX_TIMESTAMP(lastdate) > '".$datetimeCheck."'");
$rows_bf = mysql_num_rows($result_bf);
if($rows_bf == 0)
{
$query_up = "UPDATE visit_counts SET visits = visits + 1, pageloads = pageloads + 1 WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')";
$result_up = mysql_query($query_up);
}
else
{
$query_pl = "UPDATE visit_counts SET pageloads = pageloads + 1 WHERE ip = '".$ip."' AND date = FROM_UNIXTIME('".$date."')";
$result_pl = mysql_query($query_pl);
}
}
$tbIps = mysql_query("SELECT ip FROM visit_ips WHERE ip = '".$ip."'");
if(mysql_num_rows($tbIps) == 0)
{
$query = "INSERT INTO visit_ips VALUES(id, '".$ip."', FROM_UNIXTIME('".$datetime."'), FROM_UNIXTIME('".$date."'))";
$result = mysql_query($query);
}
else
{
$query = "UPDATE visit_ips SET lastdate = FROM_UNIXTIME('".$datetime."') WHERE ip = '".$ip."'";
$result = mysql_query($query);
}
}
function CreateCounter($what)
{
$numberOfDigits = 8;
$fontsize = 12;
$result = mysql_query("SELECT SUM(".$what.") FROM visit_counts") or die(mysql_error());
$count = mysql_fetch_array($result);
$count = $count['SUM('.$what.')'];
$digits = count(str_split($count));
$num = $numberOfDigits - $digits;
$str = "";
for($i = 0; $i < $num; $i++)
{
$str .= 0;
}
$str .= $count;
$x = 70;
$y = 20;
$image = imagecreate($x, $y);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$font = "URL";
$txtbox = imagettfbbox($fontsize, 0, $font, $str);
$xc = ($x - $txtbox[4])/2;
$yc = ($y - $txtbox[5])/2;
imagettftext($image, $fontsize, 0, $xc, $yc, $black, $font, $str);
imagerectangle($image, 0, 0, $x-1, $y-1, $black);
header('Content-Type: image/gif');
imagegif($image);
imagedestroy($image);
}
}
$counter = new Counter();
$counter->CountStats();
$counter->CreateCounter('visits');
mysql_close();
?>
There are no comments on this article.
If you have any question or just want to leave a message, just fill out the form below!
Your e-mail will not be visible in your post, it is for validation reasons only
Finds programming addictive and just can't stop coding. Fools around with C#/PHP/MySQL/JavaScript/DHTML/AJAX/CSS/XHTML and, at last and least, Flash...
Besides coding he, eventually but certainly not frequently enough, takes some time away from the world of computers to spend with his loved one...
He's just awesome! <3