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 is used to include external CSS file in web page?
<body> <script> <link>
<link href="/templ/style.css" rel="stylesheet" type="text/css" />
Which CSS property sets the text size?
font-weight text-decoration font-size
h2 {
  font-size: 1em;
}
Indicate the JavaScript property that can add HTML code into an element.
text value innerHTML
document.getElementById("someID").innerHTML = "HTML content";
Click on the function that returns the number of characters of a string in PHP.
count() strlen() stristr()
$str = "http://CoursesWeb.net/";
$nr_chr = strlen($str);
echo $nr_chr;       // 22
Website Mini-Traffic and Pages Access data

Last accessed pages

  1. Tabs effect with CSS (34730)
  2. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (41557)
  3. JavaScript code and PHP (27285)
  4. MouseEvent - Events for Mouse (1402)
  5. PHP getElementById and getElementsByTagName (34763)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (2611)
  2. Contact page - CoursesWeb (2523)
  3. Tabs effect with CSS (2521)
  4. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (826)
  5. PHP getElementById and getElementsByTagName (667)