/apache-include-counter

page hit counters for Apache server-side includes

Primary LanguageC

                            Web Page Hit Counter
     __________________________________________________________________

   This is a [1]server side include "counter" function, built in to the
   Apache httpd server.
     __________________________________________________________________

How to set it up

  First, turn your HTML document into a SHTML document.

   The first thing you have to do is adjust the filename extension of your
   web page so that the server recognizes it as containing server-side
   includes. Just change the extension to .shtml. So, for instance, if
   your web page was named "index.html" or "index.htm", your new web page
   should be named "index.shtml". (Other valid extensions for server-side
   include HTML documents on the Why? InterNetworking web server are:
   "-s.html" and "-s.htm".)

  Next, create a file to hold the value of the counter.

   The first thing you have to do is create a file to hold the value of
   the counter. This is an ASCII text file which contains one line on
   which the the counter value is stored. This file must always have the
   extension ".cnt". The file can begin with any name, but we recommend
   that you use the same base name as the .shtml file you intend to use it
   in. So, if your web page was named, "index.shtml," then name the
   counter file, "index.cnt". Put this file on the server, with one line
   containing the number you want the counter to start at.

   When you put the counter file on the server, it must have special
   "access permissions." It must be set read/write by user, group, and
   other so that the HTTP server can read and update it. You can use the
   chmod command to do this from your FTP program or from the Unix shell
   prompt.

  Finally, add the counter to your SHTML document.

   Add the counter directive in your web page where you want the counter
   to appear. This directive looks like a HTML comment. In its simplest
   form, its "<!--#counter file="filename" -->". Filename should be the
   base name of the counter file, without the ".cnt" extension. So, if
   your counter file is named "counter.cnt", the counter directive you
   would use is "<!--#counter file="counter" -->". There you go, you now
   have a counter in your page. Bring up Netscape and try it out!
     __________________________________________________________________

Advanced Options:

   You can do quite a bit more with the counter than just add one to it
   for each hit. You can keep track of page hits silently, adjust the
   appearance of the counter, and even do things like rotating your home
   page through several backgrounds. Here is the list of options you can
   give the counter directive:

   <!--#counter silent="no" width="0" nocommas="no" min="0"
   max="2147000000" rollover="no" increment="1" ith="no" gfx="#"
   file="counter" include="file%i.html" debug="" -->

   Where:
     * silent: Whether or not to show the value of the counter to the
       person accessing the page. yes - Don't show the counter to the
       page's accesser. no - Show the counter to the page's accesser
       (default).
     * width: The minimum width of the displayed counter (padded with 0's
       if necessary).
     * nocommas: Whether or not to insert commas into the number for
       readability. yes - Don't insert commas. no - insert commas
       (default). If width is not 0 then no commas are inserted regardless
       of the setting in nocommas.
     * max: The maximum number to count to. When the counter reaches this
       number, its behavior is controlled by rollover. By default the
       number is near two billion.
     * min: The minimum number to count down to. When the counter reaches
       this number, its behavior is controlled by rollover. By default the
       number is zero.
     * rollover: When you hit the maximum or minimum allowed number, what
       do you do? yes - Flip to the other endpoint. I.e. if at max, change
       to min. If at min, change to max. no - Stop counting. Do not add or
       subtract any further from the counter.
     * increment: The number to add to the counter. Default: 1. You may
       also use the keyword "random" which means that the next value of
       the counter should be a random number between min and max.
     * ith: Whether or not to append st, nd, rd, or th as appropriate to
       the end of the counter (i.e. 1^st, 2^nd, 3^rd, 4^th, and so on.)
       yes - Add the extension. no - Don't add the extension (default).
     * gfx: Use graphics (i.e. GIF files) to display the counter number
       instead of using a text counter. Put the html markup to include the
       graphics where "#" is the digit to replace. For example, if your
       counter were at 1,234 and you used the following line: <!--#counter
       ith="yes" gfx="<IMG SRC=\"gifs/#.gif\">" file="counter" --> then it
       would be replaced by the html markup: <IMG SRC="gifs/1.gif"><IMG
       SRC="gifs/,.gif"><IMG SRC="gifs/2.gif"><IMG SRC="gifs/3.gif"><IMG
       SRC="gifs/4.gif">
     * file: The name of the file (minus the .cnt extension) to store the
       counter in. (For example, if your filename is "home.cnt" then you
       should use file="home".) Warning: the "file" directive must come
       after everything except include and debug.
     * include: The "base" filename (where %i is the counter) of a file to
       include in to the document based on the value of the counter. (For
       example, if you want to include pageX.html where X is the value of
       the counter, use include="page%i.html".)
     * debug, if it exists, means print out the internal variables at the
       point in the command to assist in figuring out why the counter
       isn't working. This is provided for expert users... If you don't
       understand what its saying, don't use it.

   Oh yeah. By the way, you are the person to read this page.

   Enjoy!
            _____________________________________________________

Suggested Uses:

  Basic hit counter

   Add this to your web document:
   Welcome, you are the <strong><!--#counter ith="yes" file="counter"
   --></strong> person to access this web page.

   And create the counter.cnt file. It looks like:
   Welcome, you are the 1,234,567^th person to access this web page.
            _____________________________________________________

Revision History

  v2.4

     * Updated to Apache 2.4

  vA1.1.1-2

     * Added yes/no and 1/0 as valid in addition to true/false

  vA1.1.1-1

     * Added "gfx" option.
     * Upgraded to function with Apache 1.1.1

  v1.5.1-1

     * Added "random" setting to increment option
     * Added "yes/no" options for all tags. Previously the existance of
       the tag with nothing in the quotes meant do the opposite of the
       default. This action is preserved for backward compatibility.
     * Upgraded to function with NCSA httpd 1.5.1

  v1.5a-1

     * Added "ith" option.
     * Upgraded to function with NCSA httpd 1.5a
     __________________________________________________________________



apache-include-counter for Debian
-----------------

build with dpkg-buildpackage
<possible notes regarding this package - if none, delete this file>

cd c
cp filters/mod_include.h filters/mod_include.c .
cp mod_include.c mod_include_counter.c
cp mod_include.h mod_include_counter.h
patch -p0 < mod_include_counter.h.diff
patch -p0 < mod_include_counter.c.diff

 -- William Herrin <herrin@dirtside.com>  Mon, 07 Jan 2013 11:15:38 -0500