Make your own free website on Tripod.com
LiveCounter
Classic

SETUP
Introduction
What's New
Install
Configure
Register
Appendix
Support
Gallery
Welcome to the LiveCounter Classic Setup page Setup
Updated on May 9, 1999
 CONTENTS

What's New

Introduction (start here if you're a new user)

Installing LiveCounter Classic

Configuring LiveCounter Classic

Registering LiveCounter Classic

Appendix

 

 INTRODUCTION
This document contains information on downloading, installing and configuring LiveCounter Classic.

If you're using (or intend to use) LiveCounter Plug and Play, please refer to the LiveCounter Plug and Play home page as information on this document is intended only for LiveCounter Classic users. If you're not familiar with the differences between the two counters, please refer to the comparison chart.
 

Introductions to counters and CGI scripts.

If you're new to counters and other web site usage tracking tools, please read the document "Tracking your site's usage with counters, trackers and log analyzers" first. It will explain different types of counters you can use and help you to find the most suitable counter for your web page.

LiveCounter Classic requires that you have CGI access on your web server. If you're not sure what CGI mean or new to CGI scripts, please read the document "What is CGI?" first. In addition to explaining CGI, it will help you to find out if you actually have CGI access. Note that most free web space providers, such as GeoCities, Tripod, Xoom and AOL, do not give CGI access to their basic account users. Following document may help you to find if your web space provider allow CGI access: "Free web space for your home page." If you're still not sure whether you have CGI access, please refer to your web space provider's documentation or contact them for help.

The CGI script installation steps documented on this page assumes that your web server has a "common setup." If your web space provider uses an uncommon or other proprietary setup when it comes to installing CGI scripts, you must contact them to find out the specific steps for installing Perl CGI scripts. Since we have no access to your web server settings, please note that we cannot help you on these issues which are not directly related to LiveCounter Classic itself.

PLEASE NOTE: We have taken every step possible to the best of our ability to provide a detailed and clear explanation of how to install LiveCounter Classic. Many users who have heard "CGI" for the first time have been able to install LiveCounter Classic using the step-by-step instructions we have provided and written to us complimenting the documentation. When compared with other CGI counter scripts, LiveCounter Classic is actually one of the easiest scripts to install.

However, please note that if you have never installed CGI scripts before, you may find the following instructions time consuming and difficult to understand. We just wanted to give you a fair warning before you start the installation. If all fails, using a hosted counter as explained on the above document maybe the easiest way to get a counter for your web page.

 

 INSTALLING LiveCounter Classic
Requirements

You need a web server on which you have CGI access to install LiveCounter Classic.

Installing LiveCounter Classic

If you have CGI access,

  1. Find out the type of web server/host you're using.

    If your web space provider is Hypermart or ProHosting, stop here and jump to the LiveCounter Classic Installer section.

    Otherwise, continue with the manual installation as follows.
     
  2. Download LiveCounter Classic files (step #1).
     
  3. Quick Setup:
    If you're familiar with installing CGI scripts,

    - Install LiveCounter Classic Perl scripts (livec*.pl) on your web server,

    - Create a file named livecntr.dat with full access (read, write and update) in the same scripts directory,

    - Copy LiveCounter.class and lcdgts_a.gif to your base/root www directory and

    - Jump to
    step #4.


    Regular Setup:
    If you need more details, refer to instructions specific to your web sever:

    TIP: How to find out the type of web server your pages are on

 

 
Installing LiveCounter on all other servers including UNIX servers

If your particular web server is unlisted or if you're on a UNIX server, please use the following steps to install LiveCounter.

1. Download LiveCounter files

By choosing  to download and/or use this software, you are accepting the copyright and the disclaimer.

NOTE: Due to errors in certain browsers, following links to files may be renamed to *.exe when you try to download them. If this happens, be sure to rename them back to *.pl OR right click on the links and select "Save Link As..." if possible.

2. Copy LiveCounter files to proper directories on your web server

NOTE: If you're using FTP to upload LiveCounter files to your web server, use ASCII transfer mode for all .pl files (script files) and BINARY transfer mode for rest of the files.

1. Copy LiveCounter.class and lcdgts_a.gif to your base directory.
For example:

  • If your web page URL is http://www.domain.com/~user/, your base directory would be /~user/.
  • If your web page URL is http://www.domain.com/, your base directory would be / (your root directory).

NOTE: Since you will be specifying the exact location of LiveCounter.class and lcdgts_a.gif when calling LiveCounter, it is possible to copy them to a directory other than the base directory (/java/ for example). However, if you are following step-by-step instructions, it is recommended that you copy those two files to your base directory.

2. Specify the location of Perl interpreter. (UNIX based servers only)

If your web server is UNIX based, modify the first line of all LiveCounter script files, to reflect the location of your Perl 5 interpreter. For example:

  • If your Perl 5 interpreter is located in /usr/bin/ directory, you would change the first line to:
    #!/usr/bin/perl
  • If your Perl 5 interpreter is located in /usr/bin/contrib/ directory, you would change the first line to:
    #!/usr/bin/contrib/perl

3. Copy LiveCounter script files (livecnt1.pl, livecnt2.pl, and livecntr.pl) to your CGI scripts directory.

The actual location and the name of the CGI scripts directory simply depend on the type of web server you're on and the way server administrators choose to set up directories. Although some servers will let you setup your CGI scripts directory using any name you want; most servers use a pre-set CGI scripts directory name such as
cgi-bin, cgi-shl, cgi-dos, cgi-win, cgi, or scripts. The best and easiest thing to do is ask your web server administrator which directory is your CGI scripts directory.

Web Server Default CGI
scripts directory
Microsoft Internet Information Server scripts
NCSA HTTPd cgi-bin
"WebSite" cgi-shl
Win-httpd server cgi-dos
Apache cgi-bin

3. Install LiveCounter scripts on your server

1. Change the attributes of LiveCounter scripts. (UNIX based servers only)

NOTE: In order to perform following commands, you must have TELNET access to your web server and have a TELNET client OR some other way of making the scripts executable.

If your web server is UNIX based, you have to make LiveCounter script files executable by running following commands on them:

chmod 755 livecnt1.pl
chmod 755 livecnt2.pl
chmod 755 livecntr.pl

If you don't have TELNET access but you're able to use your FTP client to change file attributes, following modes should be used: (Owner: read, write, execute) (Group: read, execute) (Other: read, execute)

2. Create livecntr.dat file. (UNIX based servers only)

If your web server is UNIX based, create
livecntr.dat file by running following commands (you should be in your scripts directory when running following commands, so that the livecntr.dat file will be created in the same directory as the script files):

touch livecntr.dat
chmod 777 livecntr.dat

If you don't have TELNET access but you're able to use your FTP client to change file attributes, first transfer an empty file named livecntr.dat and use the following modes: (Owner: read, write, execute) (Group: read, write, execute) (Other: read, write, execute)

3. Optionally, rename LiveCounter scripts from *.pl to *.cgi (UNIX based servers only)

Some UNIX based web servers will require that all CGI scripts have the extension
cgi. If this is the case on your web server, rename LiveCounter scripts by running following commands:

mv livecnt1.pl livecnt1.cgi
mv livecnt2.pl livecnt2.cgi
mv livecntr.pl livecntr.cgi

4. Test LiveCounter scripts

It is very important that you perform following tests. If your LiveCounter scripts fail this test, your LiveCounter will not be able to count -- it'll stay at 0.

To make sure that the scripts are working properly, call them from a browser as follows:

http://your.domain.name/your.scripts.directory/livecnt1.pl?i http://your.domain.name/your.scripts.directory/livecnt1.pl?v http://your.domain.name/your.scripts.directory/livecnt2.pl?v http://your.domain.name/your.scripts.directory/livecntr.pl?v

OR (if you had to rename scripts to *.cgi)

http://your.domain.name/your.scripts.directory/livecnt1.cgi?i http://your.domain.name/your.scripts.directory/livecnt1.cgi?v http://your.domain.name/your.scripts.directory/livecnt2.cgi?v http://your.domain.name/your.scripts.directory/livecntr.cgi?v

Don't forget to replace your.domain.name with the actual domain name of your server and
your.scripts.directory with your CGI scripts directory name. If everything is set up correctly, you should get the following output (123 being the count -- for example -- and 97AX being the version of the LiveCounter script):

c0=123
vr=97AX

 Troubleshooting LiveCounter scripts and other installation errors

Again, you must test LiveCounter scripts according to above instructions in order to make sure that your LiveCounter scripts are properly functioning.

For example, let's assume that your domain name is www.mydomain.com, your user directory is ~myname, your CGI-BIN directory is mycgi-bin, and that you didn't have to rename LiveCounter scripts. To test your scripts, go to the following URL/address using your browser:

http://www.mydomain.com/~myname/mycgi-bin/livecnt1.pl?i

If everything goes well, you should see an incrementing number everytime you reload the above address, in the following format (123 being the incrementing number):

c0=123

If you get an unexpected result, the following troubleshooting tips may help.

If you don't run your own web server, keep in mind that your best resource for web server related questions (such as "do I have CGI access," "what is my CGI directory," "can I TELNET to my server," "how do I run Perl5 scripts," etc.) is most likely your Internet Service Provider (ISP). This is because specific details depend on the way your web server is configured by your ISP.

••• My browser is displaying the content of the script file (instead of an incrementing number) whenever I try to test LiveCounter scripts.

OR

My browser is prompting me to save a file whenever I try to test LiveCounter scripts.

Reason:

This means your LiveCounter scripts aren't getting executed.

Solution:

••• ERROR: "document contains no data"

Reason:

It's difficult to pin point this message to a single cause, but this usually means:

1. the script was unable to complete its function, possibly due to an internal error such as an inaccessible file, missing headers, incorrect Perl interpreter version, etc., OR

2. the scripts aren't properly installed, OR

3. server mis-configuration, OR

4. some other unknown error.

Solution:

••• ERROR: "file not found"

Reason:

Invalid path/URL/address.

Solution:

  • Make sure that you uploaded your files to the correct directory.
    The directory structure that you see when you TELNET or FTP to your server may be different from the directory structure you "see" when you browse your web pages.
  • Some servers use case sensitive file names.
    Use lowercase file names for all LiveCounter related files except LiveCounter.class file. LiveCounter.class file must be uploaded to the web server as LiveCounter.class (uppercase L and C), if your web server is case sensitive.
  • If you had to rename your scripts in order to make them executable (changed from livecnt1.pl to livecnt1.cgi for example), be sure to use the "new" file names.

••• LiveCounter scripts are always returning 0 (c0=0) during testing.

Reason:

1. livecntr.dat file may be missing from the scripts directory (the directory where LiveCounter Classic scripts are installed).

2. livecntr.dat file may not have the necessary file access rights such as read, write and update rights.

Solution:

  • Create an empty text file in the scripts directory named livecntr.dat as documented in the setup instructions for your particular web server platform.

    UNIX users can use the "touch" command to create empty files.

    Windows users do not need to explicitly create the livecntr.dat file when using the default settings of the operating system. However, you may need to manually create this file if the scripts directory has special file access/creation attributes.
     
  • If the livecntr.dat file already exists in the scripts directory, make sure that it has read, write and update file access rights set. If you're not sure which settings are required (depending on the server), start off by giving livecntr.dat file full access rights and then remove extra rights after testing the scripts.

    UNIX users can use the "chmod" command to change file attributes.

    Windows users can use the "File Manager | Security" or the "Windows Explorer | Properties... | Security."

••• LiveCounter scripts are returning the correct results when I test them as documented (incrementing count), but the counter display stays at 0 (or multiple 0s).

Reason:

1. Most likely there's an error in the LiveCounter HTML tags.

2. The second most common reason is that not all the LiveCounter files are being served from the same server.

Solution:

  • Check your LiveCounter HTML tags. Make sure that none of the quotes are missing, for example.
  • If you had to rename your scripts to *.cgi from *.pl to get them to execute, make sure that you changed your HTML tags to reflect this change. For example, change all instances of ".pl" to ".cgi"
  • Certain implementations of Java will generate security exceptions (errors) if you retrieve LiveCounter files from different sources/servers. For example, if your LiveCounter.class file resides on www.myserver_one.com, all other LiveCounter related files must reside on that same server. You cannot serve CGI scripts from one server and other LiveCounter files (borders, digigits, Java applet, etc.) from another.

••• ERROR: "Applet exception: class LiveCounter could not be loaded"
••• ERROR: "Applet can't start: error: java.lang.ClasFormatError"
••• ERROR: "Applet can't start: error: java.lang.ClassFormatError: bad magic number"

Reason:

Most likely your LiveCounter.class file is not at the location you specified or it is corrupted.

Solution:

  • Make sure that the LiveCounter.class file is in the location specified in the "code" parameter. For example if it's set to "http://myhost.com/my_path/" the LiveCounter.class file must be at: "http://myhost.com/my_path/LiveCounter.class"
  • Make sure that you used the proper method of downloading binary files (according to your browser).
  • Be sure to use the BINARY mode when transferring (uploading) LiveCounter.class file to your FTP site (and/or web server).
  • Check the size of the downloaded LiveCounter.class file. It should be between 9K - 11K.
  • Download the LiveCounter.class file again and upload it back to your web server.
  • Make sure that the "code" parameter inside the <applet ...> tag is exactly "LiveCounter.class" (case sensitive and does not have any spaces before or after the name inside double quotes):

    code="LiveCounter.class"
     
  • Clear your browser's cache (memory and disk), and restart it before testing your counter again.

 

••• My counter is properly working on all browsers except Internet Explorer 4.x. Internet Explorer 4.x is displaying 0s.

Reason:

This is because of certain bugs in Internet Explorer 4.x when interacting with HTTP/1.1 web servers such as Apache.

Solution:

If your counter is in fact properly working on all other browsers except IE 4.x (including older versions of IE), try adding following parameter to your counter tags one at a time. If adding the first parameter doesn't make a difference, remove it and add the second parameter, and so on.

  1. <param name="http10" value="0">
     
  2. <param name="http10" value="1">
     
  3. <param name="absurl" value="1">

 

••• I've installed Perl CGI scripts before without a problem. But I'm having trouble installing LiveCounter Classic scripts. What did I overlook?

Reason:

Although the reason could be anything, most likely reason is that you may not have transferred the scripts to your web server in ASCII mode.

Solution:

Try to upload the scripts to your web server using the ASCII FTP protocol. Or, if you're on an UNIX web server and if you're familiar with converting DOS/Windows text files to UNIX text files, do so. For example, you could load the scripts to the "vi" editor and resave, or run the following sample command on all script files:

tr -d "\015\032" <dosfile >unixfile

 

5. Add LiveCounter tags to your web page(s)

Add following tags to your web page (text colored in red must be replaced with proper values for your server/web page):

<!-- begin: LiveCounter Classic Java counter -->

<IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?h+7"
WIDTH=2 HEIGHT=2 ALT="">


<applet codebase="
http://your.domain.name/"
code="LiveCounter.class" width=90 height=20>

<param name="urlimage"
value="
http://your.domain.name/lcdgts_a.gif">

<param name="urlscript1"
value="
http://your.domain.name/your.scripts.directory/livecnt1.pl">

<param name="urlscript2"
value="
http://your.domain.name/your.scripts.directory/livecnt2.pl">

<param name="calloninit" value="0">

<!-- begin: LiveCounter Classic CGI backup counter -->
<IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?1+7"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?2+7"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?3+7"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?4+7"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?5+7"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?6+7"
WIDTH=15 HEIGHT=20 ALT=""
>
<!-- end: LiveCounter Classic CGI backup counter -->

</applet>
<!-- end: LiveCounter Classic Java counter -->

Again, don't forget to replace your.domain.name with the actual domain name of your server and your.scripts.directory with your CGI scripts directory name.

TIP: How to insert custom HTML tags on to your web page

Completing the installation

  • Bookmark this page. You'll be glad you did if you ever encounter a problem with your LiveCounter Classic installation.
     
  • Subscribe to the LiveCounter Classic Updates mailing list to stay informed of future developments and other LiveCounter Classic related news (highly recommended). This is a read-only mailing list dedicated to broadcasting  LiveCounter Classic related announcements only, you will not receive email from other members.

    To subscribe, send email to list-server@chamisplace.com with the following message text (message body, not the subject):

            SUBSCRIBE list-lcc-news
     
  • Visit this page periodically (during new browser releases for example) and read the What's New section.
     
  • If required, please register your copy of LiveCounter Classic.
     
  • If you use LiveCounter Classic and you're interested in including your site in the LiveCounter Gallery for greater visibility:

    Send an email to LiveCounter Classic support. Somewhere in the subject, include the word "gallery." Your name, email address, and web page address(es) should be included in the body of the message.

 

 
Installing LiveCounter on
Microsoft Internet Information Server (IIS) 1.x / 2.x / 3.x
and Microsoft Peer Web Services
  1. Download LiveCounter files (step #1).
  2. Install Perl 5:
    • Download and install Perl 5 for Win32.
    • Update the registry (required step):
      • Start regedt32.exe and open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
        Services\W3SVC\Parameters\ScriptMap
      • Select "Add Value" from the "Edit" menu.
      • The Value Name is .pl
      • The Data type is REG_SZ.
      • The String value is:

        <the full path to perl.exe>\perl.exe %s %s
         

        For example, if you installed Perl to C:\PERL, type

        c:\perl\bin\perl.exe %s %s

         

      • Restart all Microsoft Internet Information Server services including the WWW service.
  3. Copy LiveCounter.class and lcdgts_a.gif to your WWW root directory.
  4. Copy LiveCounter script files to the /scripts/ directory.
  5. Go to step #4.
    • your.scripts.directory = scripts

 

Installing LiveCounter on
Microsoft Internet Information Server (IIS) 4.x

  1. Download LiveCounter files (step #1).
  2. Install Perl 5:
    • Download and install Perl 5 for Win32.
    • Configure IIS settings (required step):
      • Open "Internet Service Manager" for IIS 4
      • Right click on the web server entry under the "Internet Information Server" folder and select "Properties"
      • Select "WWW Service" under "Master Properties" and click on "Edit..."
      • Change to the "Home Directory" tab
      • Click on "Configuration..."
      • Select ".pl" entry and click on "Edit"
      • Make sure value of "Executable" is set to:

        <the full path to perl.exe>\perl.exe %s %s

        For example, if Perl 5 for Win32 is installed in "C:\PERL5" the entry should be:

        c:\perl5\bin\perl.exe %s %s
         
      • Apply changes, close "Internet Service Manager" and restart the server
         
  3. Copy LiveCounter.class and lcdgts_a.gif to your WWW root directory.
  4. Copy LiveCounter script files to the /scripts/ directory.
  5. Go to step #4.
    • your.scripts.directory = scripts

 

 
Installing LiveCounter on Personal Web Server for Windows 95
  1. Download LiveCounter files (step #1).
  2. Install Perl 5:
    • Download and install Perl 5 for Win32.
    • Update the registry (this is a necessary step):
      • Start regedit.exe and open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
        Services\W3SVC\Parameters\Script Map
      • Select "Edit | New | String Value" from the main menu.
      • Type .pl and press ENTER.
      • Press ENTER again
      • The String value is:

        <the full path to perl.exe>\perl.exe %s %s
         
        • For example, if you installed Perl to C:\PERL, type
          c:\perl\bin\perl.exe %s %s
           
    • Restart Personal Web Server's HTTP service:
      • Go to Web Server Properties
      • Select "Services" tab
      • Stop and restart the "HTTP" service
  3. Copy LiveCounter files to your physical scripts directory
    • For example: C:\WEBSHARE\SCRIPTS
  4. If your version of Perl5 does not support flock() command, please place a # character in front of all flock commands in all LiveCounter script files.
    Before: After:
    flock #flock
  1. Go to step #4.
    • your.scripts.directory = scripts
 
Installing LiveCounter on "WebSite" web server
  1. Download LiveCounter files (step #1).
  2. Install Perl 5:
    • Download and install Perl 5 for Win32 or other Perl 5 compatible interpreter.
    • Run winfile.exe and select "Associate..." from the "File" menu
    • Enter "pl" (without quotes) for "Extension" and enter "c:\perl\bin\perl.exe" (without quotes) for "Associate With"
    • Restart WebSite server
  3. Copy LiveCounter.class and lcdgts_a.gif to your WWW root directory.
  4. Copy LiveCounter script files to the /cgi-shl/ (c:\website\cgi-shl) directory.
  5. Go to step #4.
    • your.scripts.directory = cgi-shl

If you get a "document contains no data" or similar error when you test LiveCounter scripts as stated in step #4, this may be because your system does not support flock() command. Please try placing a # character in front of all flock commands in all LiveCounter script files.

Before: After:
flock #flock
 
 
  Installing LiveCounter on Apache for Windows

Apache 1.3 with support for Windows was in beta stage as of March 20, 1998. Because of the following documented bug in Apache 1.3b2 and lower versions, you must have Apache 1.3b5 or higher in order to use LiveCounter Classic scripts:

"CGI scripts that are called with information appended to the script name that does not have an '=' in it do not work."

- PR#1030,
Apache

  1. Download LiveCounter files (step #1).
     
  2. Make sure support for CGI scripts is properly setup and enabled. For example:

    Download and install
    Perl 5 for Win32.

    Assuming Apache is installed in c:\apache directory with its default settings, edit \apache\conf\srm.conf and verify that the following line is not commented out:

        ScriptAlias /cgi-bin/ /apache/cgi-bin/
     
  3. Copy LiveCounter.class and lcdgts_a.gif to your WWW root directory.
     
  4. Copy LiveCounter script files to the \cgi-bin\ (c:\apache\cgi-bin) directory.

    Edit LiveCounter Classic scripts (live*.pl) and change the top line to point to the Perl interpreter as follows (assuming perl.exe is installed in c:\perl\bin\perl.exe):

        #!c:/perl/bin/perl.exe

    Rename LiveCounter Classic script extensions from .pl to .cgi.

     
  5. Go to step #4.

 

 CONFIGURING LiveCounter Classic
NOTE: Following information does not apply to your counter if you're using LiveCounter Plug and Play. Please refer to LiveCounter PnP frequently asked questions page.

If you're using LiveCounter Classic, please make sure that your counter is functioning before using following information to configure it.

How to change the default LiveCounter digits set

There are three ways to change your LiveCounter's digits set.

1. Choose a digit style from the official LiveCounter digits page:

  • Visit Gabe Fisher's Official LiveCounter Digits Page for a great selection of counter digits.
     
  • Save the file with the digits you'd like to use to a directory of your choice on your web server. For example, let's say that count9y.gif contains the digits of your choice.
     
  • Now, all you have to do is change the "urlimage" parameter in your HTML tags for LiveCounter. For example:

    <param name="urlimage"
    value="http://your.domain.name/count9y.gif">

 

2. Choose a digit set from other archive such as Digit Mania:

  • Make sure that you have the latest version of the LiveCounter.class file.
     
  • Visit Digit Mania or other digits archive and pick a digit style.
     
  • Save the file with the digits of your choice to a directory on your web server. For example, if you like "tinyred.gif" from the digital styles page, upload a copy of it to your web server.
     
  • Change the "urlimage" parameter of your LiveCounter HTML tags to reflect the new digits file name:

    <param name="urlimage"
    value="http://your.domain.name/
    tinyred.gif">
     
  • Change the default digit width, height and format to that of the above digits set by adding following parameters:

    <param name="digitwidth" value="9">
    <param name="digitheight" value="13">


    <param name="digitformat" value="1">

    "digitformat" parameter should always be set to "1" unless you're using a digits set from the official LiveCounter digits page.
     
  • Change the overall size of the LiveCounter applet for a perfect fit, by modifying the width and height parameters of the "<applet ...>" tag.

    Since the size of a single digit in our example file is 9, set width to 9 * 6 = 54 (6 is the number of digits displayed on the counter by default), and height to 13.

    <applet ... width=54 height=13>
     

 

3. Design your own digits set:

If you're familiar with creating custom images, take a look at digit set files at above sites and either modify one of them or create a similar file with digits 0 - 9 arranged vertically (original LiveCounter Classic format) or horizontally (format used by most digit style archives).

 

How to add a border and/or background to LiveCounter

Please note that adding a border will slightly increase (by a second or so depending on the size of the border and the speed of the connection) the startup time of LiveCounter. This is because of the extra time necessary to load the border image.

  1. Visit Gabe Fisher's Official LiveCounter Borders Page for a great selection of counter borders.
     
  2. Save the file with the border you'd like to use to a directory of your choice on your web server. For example, let's say that border11.gif contains the border of your choice.
     
  3. Find out the size of the border image you picked. border11.gif is 100 x 30 in size (width = 100 pixels, height = 30 pixels)
     
  4. Add following three parameters to your LiveCounter applet:

    <param name="urlimagebk"
    value="
    http://your_server_address/border11.gif">

    <param name="offsetx" value="
    5">
    <param name="offsety" value="
    5">

    If necessary, change
    offsetx and offsety parameters to change the starting location of the counter digits.
     
  5. Change the overall size of the LiveCounter applet to accommodate the size of the newly added border/background by changing the "WIDTH" and "HEIGHT" parameters of the "<APPLET ...>" tag.

    For example, change:

    <applet codebase = "http://your.domain.name/"
    code = "LiveCounter.class" width = "
    90" height = "20">


    to:

    <applet codebase = "http://your.domain.name/"
    code = "LiveCounter.class" width = "
    100" height = "30">


     

How to hide leading zeros

Simply add the following tag to your LiveCounter applet to hide leading zeros:

<param name="drawleadingzeros" value="0">
 

How to make LiveCounter start counting at a pre-set number

  1. Locate the LiveCounter counter data file.
    • If you're using the default counter data file (if you don't have multiple counters), this file would be called livecntr.dat located in your LiveCounter scripts directory.
    • If you're using a different counter data file (if you have multiple counters), counter file name would be your_counter_name.lcd (note the lcd extension).

      For example, if the name of the counter is
      mycounter1, counter data file would be called mycounter1.lcd located in your LiveCounter scripts directory.
       
  2. Load the counter data file into a text file editor and change the number you see after the word "Total: " into the number from which you want LiveCounter to start counting.

How to create multiple counters using a single LiveCounter installation

Assuming that the /cgi-bin/ is your scripts directory and that all LiveCounter (LC) related files except LC scripts are in the root directory:

  1. Pick a name for the new counter (let's say counter1)
     
  2. You only need to take this step if you're using a UNIX based server.

    Create a file called
    counter1.lcd in the /cgi-bin/ directory, just like you created livecntr.dat:

    touch counter1.lcd
    chmod 777 counter1.lcd


    (note the addition of the
    lcd extension to the counter name)
     
  3. Place following tags:


    <img
    src="http://your.domain.name/cgi-bin/livecntr.pl?h+7
    +counter1" width=2 height=2 alt="">

    <applet codebase = "http://your.domain.name/"
    code = "LiveCounter.class" width = "90" height = "20">

    <param name = "urlimage"
    value = "http://your.domain.name/lcdgts_a.gif">

    <param name = "urlscript1"
    value = "http://your.domain.name/cgi-bin/livecnt1.pl">

    <param name = "urlscript2"
    value = "http://your.domain.name/cgi-bin/livecnt2.pl">

    <param name = "calloninit" value = "0">

    <param name = "data" value = "counter1">


    <img
    src="http://your.domain.name/cgi-bin/livecntr.pl?1+7
    +counter1" width=15 height=20 alt=""><img
    src="http://your.domain.name/cgi-bin/livecntr.pl?2+7
    +counter1" width=15 height=20 alt=""><img
    src="http://your.domain.name/cgi-bin/livecntr.pl?3+7
    +counter1" width=15 height=20 alt=""><img
    src="http://your.domain.name/cgi-bin/livecntr.pl?4+7
    +counter1" width=15 height=20 alt=""><img
    src="http://your.domain.name/cgi-bin/livecntr.pl?5+7
    +counter1" width=15 height=20 alt=""><img
    src="http://your.domain.name/cgi-bin/livecntr.pl?6+7
    +counter1" width=15 height=20 alt="">

    </applet>

To create additional counters, simply follow the same steps replacing "counter1" with the name of your new counter.

How to create a CGI-only counter

Following HTML tags will create a visible CGI-only counter. Text colored in red must be replaced with specific values for your installation.

<!-- begin: LiveCounter Classic CGI counter -->
<IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?0+6"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?1+6"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?2+6"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?3+6"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?4+6"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?5+6"
WIDTH=15 HEIGHT=20 ALT=""
>
<!-- end: LiveCounter Classic CGI counter -->

If you have multiple counters, use the following HTML tags instead. "Name" is the name of the counter you want to use.

<!-- begin: LiveCounter Classic CGI counter -->
<IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?0+6+name"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?1+6+name"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?2+6+name"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?3+6+name"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?4+6+name"
WIDTH=15 HEIGHT=20 ALT=""><IMG
SRC="
http://your.domain.name/your.scripts.directory/livecntr.pl?5+6+name"
WIDTH=15 HEIGHT=20 ALT=""
>
<!-- end: LiveCounter Classic CGI counter -->

How to count link clicks using LiveCounter

  1. Create an empty counter data file in the same directory where you have LiveCounter Classic scripts installed. For example, if you want to call this new link counter "link1," create a file named "link1.lcd"

    If you're on a UNIX compatible server use the following command to create an empty counter data file:

    touch link1.lcd

     
  2. Update the anchor tag of the link you want to track as follows:

    <a href="http://your_server/cgi-bin/livecntr.pl?u+0+link1+URL">
    my link
    </a>


    For example, let's assume that you have a link to "
    http://www.chami.com/" that you want to track:


    BEFORE
    :

    <a href="http://www.chami.com/">
    go to chami.com
    </a>

    AFTER:

    <a href="http://your_server/cgi-bin/livecntr.pl?u+0+link1+http://www.chami.com/">
    go to chami.com
    </a>



    link1.lcd
    will contain the number of times "http://www.chami.com/" link was clicked on.

     
  3. Now you can use a read-only counter to view the count of your link counter.

How to create a read-only counter

The purpose of a read-only counter is to read and display the current count without incrementing it. For example, you could install read-only counters on a page on which only you have access, to monitor the current values of multiple counters that you may have on your site. You could also use read-only counters to read the values of hidden counters and link counters.

NOTE: Do not include CGI backup counter tags when creating read-only counters.

Use following tags if you have just one LiveCounter:

<applet codebase = "http://your.domain.name/" 
code = "LiveCounter.class" width = "90" height = "20">

<param name = "urlimage" 
value = "http://your.domain.name/lcdgts_a.gif">

<param name = "urlscript1" 
value = "http://your.domain.name/cgi-bin/livecnt1.pl">

<param name = "urlscript2" 
value = "http://your.domain.name/cgi-bin/livecnt2.pl">

<param name="calloninit" value="0">

</applet>

Use following tags instead if you have multiple LiveCounters, assuming that the name of the counter data file name you want to read is "counter1":

<applet codebase = "http://your.domain.name/" 
code = "LiveCounter.class" width = "90" height = "20">

<param name = "urlimage" 
value = "http://your.domain.name/lcdgts_a.gif">

<param name = "urlscript1" 
value = "http://your.domain.name/cgi-bin/livecnt1.pl">

<param name = "urlscript2" 
value = "http://your.domain.name/cgi-bin/livecnt2.pl">

<param name = "data" value = "counter1">

<param name="calloninit" value="0">

</applet>

How to exclude hits from a particular IP address

NOTE: LiveCounter must be properly installed and functioning BEFORE you make the following change.

To exclude hits from a particular IP address, replace "++$nCount;" in all livec*.pl files with:

$sExclIP = "your_ip_address_goes_here__keep_quotes";
if( $ENV{ 'REMOTE_ADDR' } !~ /$sExclIP\Z/ ){ ++$nCount; }

For example, if the IP address you want to exclude is 205.161.72.3:

$sExclIP = "205.161.72.3";
if( $ENV{ 'REMOTE_ADDR' } !~ /$sExclIP\Z/ ){ ++$nCount; }

For example, if you wanted to exclude everyone coming from 205.161.72 or 205.161.72.* (class C network):

$sExclIP = "205.161.72.";
if( $ENV{ 'REMOTE_ADDR' } !~ /$sExclIP/ ){ ++$nCount; }

If you need to exclude more than a single IP address, list each IP address separated by a | character. For example, to exclude 1.2.3.4, 1.2.3.5 and 1.2.3.6 use:

$sExclIP = "1.2.3.4|1.2.3.5|1.2.3.6";
if( $ENV{ 'REMOTE_ADDR' } !~ /$sExclIP\Z/ ){ ++$nCount; }

To exclude complete IP addresses as well as IP address ranges, add a * to the end of ranges. For example, to exclude 1.2.3.4, 1.2.4.* and 1.3.* use:

$sExclIP = "1.2.3.4|1.2.4.*|1.3.*";
if( $ENV{ 'REMOTE_ADDR' } !~ /$sExclIP\Z/ ){ ++$nCount; }

TIP: How to find out your computer's IP address

How to exclude hits to a particular URL

NOTE: LiveCounter must be properly installed and functioning BEFORE you make the following change.

To exclude hits to a particular URL, replace "++$nCount;" in all livec*.pl files with:

$sExclURL = "your_url_goes_here__keep_quotes";
if( $ENV{ 'HTTP_REFERER' } !~ /$sExclURL/i ){ ++$nCount; }

For example, if the URL you want to exclude is http://www.chamisplace.com/:

$sExclURL = "http://www.chamisplace.com/";
if( $ENV{ 'HTTP_REFERER' } !~ /$sExclURL/i ){ ++$nCount; }

How to exclude hits to all but the specified URLs or domains

NOTE: LiveCounter must be properly installed and functioning BEFORE you make the following change.

To include hits to a particular URL only (the counter will not increment if you place it on an URL or domain outside the one you specify), replace "++$nCount;" in all livec*.pl files with:

$sExclURL = "your_url_or_domain_goes_here__keep_quotes";
if( $ENV{ 'HTTP_REFERER' } =~ /$sExclURL/i ){ ++$nCount; }

For example, if the URL you want to include is http://www.chamisplace.com/:

$sExclURL = "http://www.chamisplace.com/";
if( $ENV{ 'HTTP_REFERER' } =~ /$sExclURL/i ){ ++$nCount; }

If you want to include a particular domain, use the domain name instead of the complete URL. For example, to include hits only to pages at chamisplace.com:

$sExclURL = "chamisplace.com/";
if( $ENV{ 'HTTP_REFERER' } =~ /$sExclURL/i ){ ++$nCount; }

How to create a hidden LiveCounter

To create a hidden counter, simply insert the following single tag by itself into your web pages (you'll see a 2x2 black pixel, but you can treat this as a period or otherwise make it blend with the rest of the page in order to make it "invisible"):

If you have just one LiveCounter:

<img 
 src="http://your.domain.name/your_scripts_directory/livecntr.pl?0+1"
 width="2" height="2">

If you have multiple LiveCounters, assuming that the name of the counter you want to hide is "counter1":

<img 
 src="http://your.domain.name/your_scripts_directory/livecntr.pl?0+1+counter1"
 width="2" height="2">

Finally, you can use a read-only counter to view the count of a hidden counter.

Since the hidden counter is a CGI-only counter, you should use this counter mode if you do not wish to use Java (as with the regular/full counter mode with the animated display).

How to enable doorbells

Just as visitors to your home would ring your doorbell, your WWW home page with LiveCounter Classic can be setup to make a sound when others visit it.

To have your LiveCounter Classic counter make a sound by enabling doorbells, simply insert the following code in-between <applet ...> and </applet> tags of your counter tags:

<param name = "urlsound1"
value = "path_to_your_*.AU_audio_file">

For example, if your audio file is located at:

http://your.domain.name/your_directory/your_audio_file.au

insert the following tag:

<param name = "urlsound1"
value = "http://your.domain.name/your_directory/your_audio_file.au">

Please note that your sound file must be in the *.AU format, because this is the native audio file format for Java applets.

How to change the number of digits on the counter display

You can use the "digitscount" parameter to change the number of digits on the Java enabled counter display. For this example, let's assume you want to display 10 digits:

  • Add the following parameter to the applet (between <applet> and </applet> tags):

    <param name="digitscount" value="10">
     
  • Adjust the width of the applet.

    Since the default size of a digit is 15 pixels and we want to display 10 of those digits, the total width of the counter would be 15 * 10. Set the "width" parameter of the <applet ...> tag to 150:

    <applet ... width=150>

    If you have a border around the counter, don't forget to increment the width to accommodate for the extra space occupied by the border.
     

How to change the frequency counter display is updated

By default, LiveCounter Classic applet will update its counter display every 60 seconds. If you want to change this to 30 seconds instead, for example, simply add the following parameter to the Java enabled counter (between <applet ...> and </applet> tags):

<param name="period" value="30">

 

 

 

 REGISTERING LiveCounter Classic
 
LiveCounter Classic registration fee

You're welcome to use LiveCounter Classic without a fee on:
- web pages of non-profit organizations and
- your personal web pages that does not generate any income.

If you use LiveCounter Classic on a commercial web site or a web site generating income, you're required to register your copy of LiveCounter Classic within 30 days of the installation.

Methods of registering LiveCounter Classic

Please register after you make sure that LiveCounter Classic is working on your web server. If LiveCounter Classic isn't installed at the main web address that you're registering, be sure to also include the address to a page on the same server where LiveCounter Classic is up-and-running.

NOTE: If you're a Florida (USA) resident, please add 6% - 7.5% sales tax (depending on your county) to the registration fee.

Type of registration / license Fee
A. Single web site license

This license is for using the LiveCounter Classic counter on a single web site. The web site may have its own domain (such as www.my_site.com) or be a part of another domain (such as www.my_isp.com/~my_site/).

$15.00
B. Single web site license + LiveCounter Classic log processor

This is the same as the above license (license A), except it entitles you to use the LiveCounter Classic Log Processor in addition to the LiveCounter Classic counter. You will receive the LiveCounter Classic log processor in addition to the counter software.

$20.00
C. Single domain - 100 web sites license

This license is for Internet Service Providers (ISP) wanting to let their customers with web sites as part of the ISP's domain. For example: isp_domain.com/~customer_a, isp_domain.com/~customer_b, isp_domain.com/~customer_c, etc. Hosted web sites may not have their own domains.

$145.00
D. Single server - 100 web sites license

This license is for web presence providers hosting virtual web sites. This license will cover up to 100 web sites hosted on a single computer / server.

$245.00

 
You'll receive the licensed LiveCounter Classic counter applet and scripts by email after your order is verified. If you purchased license B, the LiveCounter Classic Log Processor will also be included in addition to the counter.

Need a custom license? Please write to LiveCounter Classic support describing what you're looking for. Information on how to pay by postal mail can also be obtained from the above email address.

 

 WHAT'S NEW
5/12/98 : LiveCounter Classic Installer

LiveCounter Classic Installer (LCCI) is a Windows 95/98/NT program able to automate the LiveCounter Classic setup process on certain web hosts. Simply download and run LCCI from your Windows computer. You should have a LiveCounter Classic counter up-and-running on your web page in approximately 10 minutes, even if you have no experience in installing CGI scripts.

Because different web servers require different steps to install CGI scripts, LCCI can work on selected web hosts only. The current version of LCCI was tested with the following hosts (please note that we're not affiliated with any of the following companies; this should not be considered as an endorsement):

  • Hypermart (added on 11-MAY-1998)

    08-May-1999 :
    Hypermart's Perl 5 location is different from the default path in the LiveCounter CGI files (*.pl). If your counter doesn't increment after an error free installation, try changing the top line in those files from:

    #!/usr/bin/perl

    to

    #!usr/local/bin/perl
  • ProHosting (added on 16-MAY-1998)
  • Free Sites Network (added on 25-MAY-1998)

    13-Sep-1998 :
    Seems to have disabled CGI access. LiveCounter Classic will not work without CGI access.

We selected above hosts because they provide free web site hosting with CGI access. If you know of other free web site hosting services that provide CGI access, we'll be glad to consider adding them to LCCI. Please forward all such requests and LCCI feedback to lccisupport@chamisplace.com

LCCI is a helper program only; you can still install LiveCounter Classic manually on any web server with CGI access, without using LCCI.

By choosing  to download and/or use this software, you are accepting the copyright and the disclaimer.

Download LiveCounter Classic Installer

 

3/31/98 : Updated LiveCounter Classic applet

The latest version of LiveCounter Classic applet (internal version 1015) is now available for downloading.

If you're installing LiveCounter Classic for the first time, simply follow the regular installation steps as documented.

If you downloaded and installed LiveCounter Classic prior to 3/31/98, you can easily update your counter as follows:

  • Download the latest LiveCounter.class file.
  • Replace (overwrite / copy over) your current LiveCounter.class file with the above file by uploading it to your web server using the BINARY transfer mode.
  • Restart your browser (clear browser cache if necessary).

What's new in this version:

  • Access to more than 600 counter digit styles: LiveCounter Classic is now compatible with the counter digits format used by Digit Mania and many other Internet counter archives in addition to LiveCounter Classic's original counter digits format. You can find details in the "How to change the default LiveCounter digits set" section.
  • New Live Doorbells feature: LiveCounter is the first web counter to have a live "doorbell" -- just as visitors to your home would ring your doorbell, your WWW home page with LiveCounter Classic will make a customizable sound when others visit it. Refer to the Configuring LiveCounter Classic section for instructions on how to enable this feature. Please watch and listen to the LiveCounter installed on the LiveCounter Classic home page for an example of this feature.
     
  • Counter display update: LiveCounter Classic's counter display has been updated to start one below the current count and to immediately scroll to the most current count. This will give your visitors a chance to experience your counter's animation without necessarily waiting for someone else to visit your page. It is possible to disable this feature if necessary.

 

   APPENDIX
 
"LiveCounter Classic" and "LiveCounter Plug and Play" Comparison chart
 
LiveCounter Classic and LiveCounter Plug and Play Comparison Chart
Home page LiveCounter Classic LiveCounter Plug and Play
Recommended
  • If you have your own web server, or
  • If you have CGI access, and
  • You're willing to take the time to install and test CGI scripts.
  • You're looking for a powerful log reports generator and/or other features unique to LiveCounter Plug and Play, or
  • If you don't have CGI access, or
  • If you're not familiar with installing CGI scripts, or
  • If you simply want to have a counter up-and-running by pasting a few lines of HTML text.
Type
  • Stand-alone product.
  • Subscription.
Requirements
  • Your own web server or a web server on which you have CGI access.
  • Perl interpreter.
  • Web page on any web server on the Internet.
Installation
  • Download LiveCounter Classic files.
  • Install LiveCounter Classic CGI scripts, image files, Java applet, and counter data files.
  • Paste customized LiveCounter Classic HTML codes to your web page.
  • Paste the HTML codes you receive after subscribing to the LiveCounter Plug and Play service.
Features
  • Free version of LiveCounter Classic includes a live hits display and a CGI backup counter.
  • An optional basic log reports generator (log processor) is available.

    Please refer to the home page for a detailed list of features.
  • Includes most features of LiveCounter Classic and new features unique to LiveCounter Plug and Play.
  • Built-in powerful log reports generator.


    Please refer to the home page for a detailed list of features.
Price
  • Personal web pages and non-profit organizations can use LiveCounter Classic for free.

    Businesses are required to obtain a LiveCounter Classic license (one time fee).
  • Monthly subscription fee depending on the number of hits your page receives.

    This subscription (or usage) fee is necessary because all the resources required to run your copy of LiveCounter Plug and Play reside on our server. Each time your page receives a hit, you'll be using our server's resources (disk space, bandwidth, processing power, etc.) to record the hit and other related statistics. In order to cover the cost of the servers and the bandwidth required to serve your counters, we have to charge a usage fee.
  • Does not require extra setup fees or registration fees.
 
Parameters used by the LiveCounter Classic applet

Once LiveCounter Classic is set up and properly functioning on your web server, you can use following parameters to further customize it:
 

Parameter Description Default
digitwidth Width of each digit image. If you design your set of counter digits, you can modify this parameter to set the new width for your digit images. 15
digitheight Height of each digit image. If you design your set of counter digits, you can modify this parameter to set the new height for your digit images. 20
offsetx X coordinate which LiveCounter uses to draw digits from. 0
offsety Y coordinate which LiveCounter uses to draw digits from. 0
period How often (in seconds) LiveCounter should contact the server. If your server gets too many requests from LiveCounter for access statistics, simply increase this value. 60
digitscount Number of digits to display. Don't forget to change the width parameter of the <APPLET ...> tag to match the new size of the counter. 6
drawleadingzeros If set to 0, LiveCounter will not draw leading zeros. 1
timetosleep Time to sleep (in nano seconds) before scrolling digit images. 200
scale Lines (in pixels) to skip when scrolling digit images. 2
data Name of the counter data file. Set this to a unique file name if you want LiveCounter to track statistics for multiple pages. livecntr.dat
urlimage URL of the GIF image which LiveCounter should use to construct the final counter image. (REQUIRED) N/A
urlimagebk URL of the GIF/JPG image which LiveCounter should use as the background (to create a border for example). If you set this parameter, you can use offsetx and offsety parameters to adjust the location of the digits. Don't forget to change width and height parameters of the <APPLET ...> tag to match the size of the background image. N/A
urlscript1 URL of the LiveCounter server-side script #1 -- livecnt1.pl. (REQUIRED) N/A
urlscript2 URL of the LiveCounter server-side script #2 -- livecnt2.pl. (REQUIRED) N/A
calloninit If set to 1, LiveCounter will contact the server when it is being initialized. 1
callonstart If set to 1, LiveCounter will contact the server when it is being started by the browser. 0
callonstop If set to 1, LiveCounter will contact the server when it is being stopped by the browser. 0
callondestroy If set to 1, LiveCounter will contact the server when it is being destroyed by the browser. 1
setcurrvalonstartup If set to 1, LiveCounter will set the count to the latest access count sent by the server when it's being displayed for the first time. If you set this to 0, LiveCounter will assume the count is 0 and will keep counting until it reaches the current access count. 1
countcurrent You should only set this parameter if you want LiveCounter to always start counting from a given number. For example, setting this to 100 will make LiveCounter count from 100 regardless of the current access count. Parameter setcurrvalonstartup should be set to 0 when using this parameter. 0
countmax You may use this parameter to instruct LiveCounter to stop counting after a given number. Parameter setcurrvalonstartup should be set to 0 when using this parameter. If set to 0, LiveCounter won't assume a limit on its count. 0
rungarbagecollector This parameter is obsolete. It was used to force garbage collection on beta versions of Netscape Navigator 2.0. N/A

How to obtain technical support

If you have questions after reading this document (especially the troubleshooting section) please write to LiveCounter Classic support. Don't forget to include your WWW address where LiveCounter Classic is installed (required in order to be able to check for possible installation problems).

Copyright

LiveCounter, LiveCounter Classic, and LiveCounter Plug and Play
Copyright (C) 1996-1999, by Chami Wickremasinghe.
All Rights Reserved.

Disclaimer

THIS SOFTWARE IS PROVIDED ON AN AS-IS BASIS WITHOUT WARRANTY OF ANY KIND.

PROVIDER SPECIFICALLY DISCLAIMS ANY OTHER WARRANTY, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL PROVIDER BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL OR INCIDENTAL DAMAGES, EVEN IF PROVIDER HAS BEEN ADVISED BY CLIENT OF THE POSSIBILITY OF SUCH POTENTIAL LOSS OR DAMAGE. CLIENT AGREES TO HOLD PROVIDER HARMLESS FROM AND AGAINST ANY AND ALL CLAIMS, LOSSES, LIABILITIES AND EXPENSES.