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:

Requirements

- PHP 5.4+ with PDO extension enabled.
- Web Browser with HTML5 support, and JavaScript enabled.

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".
$nrlastacc = 8;
$nrtopacc = 8;
- Default Timezone for date and time is set to "Europe/London", in "siteaccess.php".
@date_default_timezone_set('Europe/London');
- If the script is not copied in the root directory of your website, put an absolute /full path (with "http://", or "https://") to "siteaccess.php" in "siteaccess.js" (line 13).
ob_ajax.open('POST', 'http://domain/path/siteaccess.php', true);
- If you want to not display the list with last accessed pages, delete (or comment) this line of code in "siteaccess.php".
$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".
$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".
$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".
$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.

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".
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

HTML
CSS
JavaScript
PHP-MySQL
Which tag create a highlighted bolded text?
<q> <strong> <em>
<p>Address: <strong>http://CoursesWeb.net/</strong> - Tutorials.</p>
Which of these CSS codes displays the text bolded?
text-size: 18px; font-style: italic; font-weight: 800;
#id {
  font-weight: 800;
}
What JavaScript function can be used to call another function multiple times, to a specified time interval?
setInterval() setTimeout() push()
function someFunction() { alert("CoursesWeb.net"); }
setInterval("someFunction()", 2000);
Click on the correctly defined variable in PHP.
var vname = 8; $vname = 8; $vname == 8;
$vname = 8;
echo $vname;
Website Mini-Traffic and Pages Access data

Last accessed pages

  1. Qwop (20281)
  2. Dream Fruit Farm (635)
  3. Wake Up! (2548)
  4. Bubble Tanks 3 (21301)
  5. Math Mahjong Advanced (1043)

Popular pages this month

  1. Qwop (4287)
  2. Bubbles3 (3791)
  3. Butterfly Kyodai (2699)
  4. Zuma Deluxe (2492)
  5. Backgammon (1288)