Tracking the number of users that visit the pages of Web site is a common type of application found in many sites.
This is a PHP /Ajax script to register and display simple website traffic statistics, and Pages Access data.
Sometimes it is hard to distinguish site accesses done by real human users from robot accesses.
This script implements an approach that uses AJAX requests to validate accesses done by real human users using real browsers, staying the pages for at least 5 seconds. This period is a configurable parameter.
The website access data is not registered again if the page is refreshed.
This script not records the accesses performed by well known crawler robots (Googlebot, alexa, Gigabot, MSN, Yahoo, ..., and others, over 170 bots), and it can be included in both .php and .html files (but the server must run PHP).
Can be easily used in other language, just translating texts in a single file.

- This script is Free, without assistance, you can use it, modify, and publish it freely.

• To Download the script, click: Website Traffic and Pages Access data

Records and displays these statistics for your website:
Traffic data can be saved in text files on the server, or into a MySQL database (using PDO). If your website has more than 5000 pages, it is indicated to use MySQL database.
- For installation, see the instructions in "Readme.html" file, in the archive with the script.
The HTML code is valid XHTML. The script cames with two design styles: traffic data displayed horizontally (defined in "siteaccess_h.css"), and vertically (defined in "siteaccess_v.css"), like in these images.

- Horizontally (click the image)
Website Traffic and Pages Access data, horizontally

- Vertically
Website Traffic, Pages Access, vertically

Advanced Settings

- To use the script in other language, just translate the texts in "lang.php" file ("siteaccess" directory).
- By default, the script shows the last 8, and top 8 accessed pages. To change this number, modify the values of $nrlastacc and $nrtopacc variables, in "siteaccess.php" (lines 9 and 10).
$nrlastacc = 8;
$nrtopacc = 8;
- If you want to not display the list with last accessed pages, delete (or comment) this line of code in "siteaccess.php" (line 35).
$siteaccess .= '<div id="pgalast"><h4>Last accessed pages</h4>'. $objSA->getLastPages($nrlastacc) . '</div>';
- To not display the list with most accessed pages in current month, delete (or comment) this line of code in "siteaccess.php" (line 38).
$siteaccess .= '<div id="pgatop_m"><h4>Top pages this month</h4>'. $objSA->topMonth($nrtopacc) . '</div>';
- If you want to not display the list with top accessed pages, delete (or comment) this line of code in "siteaccess.php" (line 41).
$siteaccess .= '<div id="pgatop"><h4>Top accessed pages</h4>'. $objSA->getTopPages($nrtopacc) . '</div>';
- To not display websites traffic data, delete (or comment) this line of code in "siteaccess.php" (line 44).
$siteaccess .= $objMT->getTraff($objSA->currentpage);
- The HTML <OL> list for Last and Top accessed pages is defined in setHtmlLi() method, in "class.PagesAccess.php" file.
- The HTML code with site traffic data is defined in the getTraff() method, in "class.MiniTrafic.php" file (lines: 198-205).

These methods can be used in PHP file to get the website access data separatelly (after including "siteaccess.php" file):
- The script registers traffic data after the user stays 5 seconds on page. To modify this number of seconds, change the value of nrsecacc variable, in "siteaccess.js" (line 1).
var nrsecacc = 5;

The script was succesfully tested on localhost (with XAMPP), and on this website, with Mozilla Firefox, Internet Explorer, Google Chrome, and Opera.

Daily Test with Code Example

Which tag adds an image in web page?
<div> <img> <span>
<img src="" width="191" height="63" alt="Courses-Web" />
Which of these CSS codes displays the text oblique?
font-style: italic; text-decoration: underline; font-weight: 500;
#id {
  font-style: italic;
Click on the jQuery function used to hide with animation a HTML element.
click() hide() show()
$(document).ready(function() {
  $(".a_class").click(function(){ $(this).hide("slow"); });
Click on the correctly defined function in PHP.
fname function() {} function fname() {} function $fname() {};
function fname($a, $b) {
  echo $a * $b;
Website Mini-Traffic and Pages Access data

Last accessed pages

  1. Escape Games (3376)
  2. Dog Mahjong (1229)
  3. Bubbles3 (9122)
  4. PHP getElementById and getElementsByTagName (11826)
  5. jQuery ajax() method (10685)

Top accessed pages

  1. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (47860)
  2. Read Excel file data in PHP - PhpExcelReader (35978)
  3. PHP-MySQL free course, online tutorials PHP MySQL code (35586)
  4. Get Attribute (ID, Class, Name, Title, Src) with jQuery (32087)
  5. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (29359)