Home arrow PHP arrow Tracking Website Statistics with PHP

Tracking Website Statistics with PHP

If you have a website, especially one that sells products or services, it can be useful to track the visitors to your site. This article explains how to write a program that will do just that.

  1. Tracking Website Statistics with PHP
  2. Analyzing the Recorded Data
  3. Visitor Specific Analysis
  4. Building a Page
By: Jacques Noah
Rating: starstarstarstarstar / 34
September 12, 2006

print this article




In this article we are going to discuss how to create a program that will track the visitors to your site. We are going to do this by:

  • Recording the visitors' IP address.
  • Recording the time and date of the visit.
  • Recording the pages the visitor viewed.
  • Recording the name of the browser the visitor is using.
  • Recording the page the person came from.

All this will be recorded for every page on a website, simply by including the code that we are going to create in a moment.

All this information is going to give us the ability to know which pages are viewed the most and which ones the least. It will also let us know what pages a particular visitor views the most, by means of the visitor's IP address.

The Database Table

Create a database and give it whatever name you like. We now need to create a table. We need the following data:

IP address -Visitor's IP address


Page- Page visited

Browser-Name of the browser

frompage- Page from which the person came

With the above in mind, let's create the table:

CREATE TABLE `statTracker` (
  `id` int(11) NOT NULL auto_increment,
  `browser` varchar(255) NOT NULL default '',
  `ip` varchar(15) NOT NULL default '',
  `thedate_visited` date NOT NULL default '0000-00-00',
  `page` varchar(70) NOT NULL default '',
  `from_page` varchar(200) NOT NULL default '',
  PRIMARY KEY  (`id`)

The table should be very easy for you to understand. Now, without further ado, let's create the core tracking script. This is the script that you should attach to every page on your site:

Script: theCollector.php

//collect information...
$browser  =$_SERVER['HTTP_USER_AGENT']; // get the browser name
$curr_page=$_SERVER['PHP_SELF'];// get page name
$ip  =  $_SERVER['REMOTE_ADDR'];   // get the IP address
$from_page = $_SERVER['HTTP_REFERER'];//  page from which visitor
$page=$_SERVER['PHP_SELF'];//get current page
//Insert the data in the table...
$query_insert  ="INSERT INTO stattracker
(browser,ip,date_visited,page,from_page) VALUES
('$browser','$ip',now(),'$page','$from_page')" ;
$result=mysql_query ( $query_insert);

//remove this section when attaching the script to a webpage
//I include it only because of it's debug value.
$query="Select Count(*) from stattracker WHERE page = '$curr_page'";
$viewed = mysql_result($result,0,'count(*)');
echo "This page was viewed $viewed times";

This script includes two sections, one to collect the data we require, and one to insert the collected data into the database.

There are only a few points about the code worth explaining. The "$_SERVER[]" is a server array that contains a lot of useful variables. You can determine the host name, remote port or even the scriptname.

The Count(*) retrieves all the rows in the table that meets the condition. In the  "$viewed = mysql_result($result,0,'count(*)')" line the "0" refers to the row; at this point there is no row in the table since we have not run the script yet.

>>> More PHP Articles          >>> More By Jacques Noah

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates


Dev Shed Tutorial Topics: