home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Spezial / SPEZIAL2_97.zip / SPEZIAL2_97.iso / ANWEND / ONLINE / SREFV12J / COUNTER.DOC < prev    next >
Text File  |  1997-06-10  |  15KB  |  289 lines

  1. 25 May 1997:  Description of the SRE-Filter COUNTER.RXX add-on
  2.  
  3. A) Introduction ------------------
  4.  
  5. COUNTER.RXX is a flexible "hits" counter generator and request-information
  6. recorder. It can be invoked in a number of different manners:
  7.  
  8.  1) As a server side include (instead of <!-- REPLACE HITS -->):
  9.         COUNTER.RXX can generate a textual counter when "called"
  10.         as a server side  include.
  11.  2) As an in-line image (instead of the XCOUNT cgi-bin program):
  12.         COUNTER.RXX can generate a simple "odometer" style counter graphic.
  13.  3) In conjunction with SENDFILE, as a means of keeping track of
  14.     requests.
  15.  
  16.  The principal advantages of COUNTER.RXX are:
  17.    i) In text mode, it has several display options, including
  18.       inclusion of commas and a "st", "nd", etc. suffix
  19.   ii) Document unique  ".CNT" file are used to store results
  20.       (rather then the COUNTER_FILE, or the  ACCESS.CNT file used by
  21.       the XCOUNT and JCOUNT cgi-bin scripts).
  22.  iii) Request specific information (such as IP address, time of request,
  23.       and referer) can be stored.
  24.  iv)  Suppression of hits from "owners" and from "recent requesters"
  25.       can be invoked.
  26.  
  27. Acknowlegments: this is adapted from "The SSI Hit Counter" of William Herrin
  28.                 (http://www.why.com/herrin).
  29.  
  30.  
  31. B) How to install & use COUNTER.RXX  --------------
  32.  
  33.   1) Copy COUNTER.RXX to your GoServe "addon" directory
  34.  
  35.   2) Create a (set of) .CNT files -- one for each "document" you wish
  36.      to "count requests for" (though it is permissible to have several
  37.      documents "share" a single .CNT file).
  38.  
  39.      NOTES:
  40.        *  In general, you should create these .CNT files beforehand --
  41.           COUNTER.RXX may FAIL if the indicated .CNT file does not exist
  42.           (for details, see the description of CREATE_FILE below)
  43.        *  When you create them, you should leave the .CNT files empty.
  44.  
  45.   3) As mentioned above, there are three ways you can invoke COUNTER.RXX
  46.  
  47.     a) As a "server side include" (a text counter is written)
  48.        Place  keyphrases into  your  HTML documents. For example:
  49.        These keyphrases should have the form:
  50.           <!-- INTERPRET FILE COUNTER.RXX  option_list , noaugment-->
  51.        where:
  52.             * option_list: a space delimited list of formatting instructions
  53.             * noaugment: if 1, do not augment the count (the current value  is
  54.                      used).
  55.  
  56.      b) As an in-line image (a simple black on white "odometer").
  57.         Place "in-line images" elements in your HTML documents. For example:
  58.               <IMG SRC="/COUNTER.RXX?option_list"> 
  59.         elements in your HTML documents, where:
  60.             * option_list is an & delimited list of formatting instructions
  61.                        (see below for details)
  62.             * option_list must include a GRAPHICS=value option in the option_list 
  63.                (along with the FILE=filename option)
  64.  
  65.     c) In conjunction with the SENDFILE facility.
  66.        Place a "SENDFILE URL" in your HTML documents. For example:
  67.           <a href="/SENDFILE?filename&counter=option_list">Send file </a>
  68.         *  option_list is a  +  list of formatting instructions
  69.                        (see below for details)
  70.  
  71.   4) You may also want to change a few variables in COUNTER.RXX:
  72.  
  73.       a)  Counter_dir : If set to 0  (the default), the '.CNT' files
  74.            are expected to be  in the "requesting documents" own directory.
  75.            Otherwise, counter_dir should contain a fully qualified
  76.            directory name.
  77.  
  78.  
  79.       b) Counter_image_dir:  Set "URL" that points to  the "digit images".
  80.         The counter_image_dir should be set to a "URL" that points to the root
  81.         of the image directories.  Each differant type of counter images should
  82.         be in it's own directory.  For example:
  83.              counter_image_dir='http://foo.bar.net/cntimgs/'
  84.         Note: To suppress-- set to 0  
  85.  
  86.  
  87.       b)  Write_users : If write_users=1, then along with the "number" of
  88.            hits, client specific information is recorded. See f) below for
  89.            details.
  90.            Notes:
  91.                 * if you use the write_users option, privacy concerns lead
  92.                   us to strongly recommend using a web-inaccessible
  93.                   counter_dir (i.e.; by setting COUNTER_DIR='\GOSERVE')
  94.                 * you may want to reset these .CNT files every so often
  95.                   (since large files will impact response time).
  96.                 * only the count is written to the "requesting document".
  97.                   The "user information" is written for the sake of
  98.                   the server administrator(s).
  99.  
  100.        c)   Suppress_recent: If non zero, and if Write_users=1, then
  101.             the user list is checked against the client's ip address.
  102.             If:
  103.                 i) if a matching entry (by ip address) exists
  104.                ii) it is less then suppress_recent minutes old,
  105.             Then:
  106.                 i) the counter is NOT incremented
  107.                ii) the current value is used in the server-side include
  108.  
  109.        d)   Suppress_loguser: If equal to one, then suppress the
  110.             LOGUSER "option".  That is, if one, then always use the value
  111.             of write_users.
  112.  
  113.        e)   Suppress_owners: If equal to one, then if the request is
  114.             from an owner (as listed in the OWNERS variable), the counter
  115.             will not be incremented.
  116.  
  117.        f)   Create_file: If equal to one, will create a .CNT file
  118.             if none already exists.  Otherwise, if no .CNT file
  119.             exists, COUNTER will return nothing.
  120.  
  121.        g)    There are two output formats: Common-log format, and customized.
  122.           a)  To select "common-log" format, set common_log_format=1.  When
  123.              enabled, entries of the form:
  124. 151.121.65.143, 729109.895139, someone.clients.org - USERNAME [27/Mar/1997:21:29:58 -0500] "GET /status.htm HTTP/1.0" - 0
  125.             will be written (note that the status code is always set to -, and 
  126.             the size will be non-zero only if COUNTER.RXX is invoked via 
  127.             SENDFILE).
  128.  
  129.           b) For customized fornat, you enable (by setting =1) one, several, 
  130.              or all of the following "output field" variables:
  131.               save_ipname:    Write the "dotted" IP Name (if none available,
  132.                               save IP address)
  133.               save_username:  Write the SRE-Filter "logon" name (if available)
  134.               save_time:      Write the time, in 13:01:33 format
  135.               save_date:      Write the date, in 5 Feb 1996 format
  136.               save_docname:   Write the "request selector"
  137.               save_bytes:     Write the number of bytes written, and 
  138.                                       the size of the file.
  139.                                If a premature disconnection occurs, the number 
  140.                                of bytes written will be less then the size of 
  141.                                the file.
  142.               save_referer:   Write the "referer (if available)
  143.               save_browser:   Write the "user-agent"
  144.  
  145.           Note: in both cases, the client's ip address and the "julian" date/time are
  146.                 always written (given write_users=1)
  147.  
  148. C) Description of COUNTER.RXX "option list" options ---------
  149.  
  150.   The simplest option list is no option list.  If there is no option
  151.   list, a .CNT file (with the same name as the requested document) will
  152.   be used.
  153.   Notes:
  154.         * If you are using a counter_dir (say, counter_dir='d:\goserve'),
  155.           and you have files with the same name in several directories, they
  156.           will end up augmenting the same counter.
  157.         * For the "odomoter" (IMG SRC="/COUNTER.RXX.."> variant, you
  158.           MUST include the GRAPHICS option in the option list.
  159.  
  160.  Otherwise, the options are:
  161.   file="filename" : The name of the .CNT file (relative to
  162.                     the counter_dir, or relative to the the document's
  163.                     own directory if counter_dir=0).
  164.        silent=""  : If a silent is present, the .CNT file will be
  165.                     updated, but nothing will be displayed.
  166.     nocommas=""   : If present, every 3rd digit commmas are NOT written
  167.                     This is implied if width>0. If not specified,
  168.                     commas WILL be included.
  169.     width=ndigits : minimum width of counter (padded with 0's if need be).
  170.                     Default is 0 -- which means "don't try to pad".
  171.     min=min_value : minimum value to count from (the default is 0)
  172.     max=max_value : maximum value to count to (the default is 2147000000)
  173.     rollover=""   : if present, will reset counter to min when max is hit.
  174.                     Default is to not rollover.
  175.     increment=inc : add inc at each hit (typically, inc=1). 
  176.                      If increment=0, then the counter is NOT augmented, and
  177.                      a user-entry is NOT added.
  178.     ith=""        : if present, append a th,rd,st, or nd "suffix"
  179.                     to the number (1st, 2nd, 3rd, 4th, etc).
  180.                     Default is do NOT add this suffix.
  181.     sel=selector  :  If write_users is enabled, the value of SEL will be  
  182.                      written to the "selector" field (in the .CNT file).
  183.                      If SEL is not specified, the selector of that "invoked"
  184.                      COUNTER.RXX will be used.  
  185.                       Note: If you are using the GRAPHIC option,
  186.                              you should also use the SEL option.
  187.    loguser=arg     : If ARG=YES or NO, and SUPPRESS_LOGUSER<>1, then 
  188.                      override the WRITE_USERS variable. YES = record client,
  189.                      NO=Do NOT record client.
  190.      graphic=arg   : If arg=YES, then a white on black background
  191.                      odometer graphic will be created. If arg=NORMAL,
  192.                      then a black on white background odometer will
  193.                      be created.  Note that if either a graphic=YES
  194.                      or graphic=NORMAL argument is included,
  195.                      nocommas is set to 1, and ith is set to 0.
  196.                      THIS ARGUMENT IS REQUIRED IF YOU ARE INVOKING COUNTER.RXX
  197.                      AS AN INLIME IMAGE.
  198.                      Note: it is strongly recommended that you include a SEL option when
  199.                            you use the GRAPHIC option.
  200.      imgtype=arg   : If arg is the name of a "digit gif containing subdirectory",
  201.                      then a series of IMG elements are returned to the client that
  202.                      point to the appropriate images.  For details, see the
  203.                      miscellaneous topics section.
  204.      imgalign=arg   : Arg should be MIDDLE, TOP, or BOTTOM -- effects the alignment
  205.                       of digits created when imgtype is specified.
  206.   duration=#days :  If duration>0, then the number of hits in the last "#days" will be displayed.
  207.                       For example, duration=1 means that the "number of hits today" is displayed.
  208.                       Similarly, duration=7 means "the number of hits in the last 7 days"
  209.                       will be displayed.
  210.                       Notes:
  211.                          *  For this to work, you MUST set  write_users=1. 
  212.                             If write_users<>1, then a value of 000 is displayed.
  213.                          *  The actual number of hits is displayed (minval,  rollover,
  214.                             etc. are ignored).
  215.                          *  If duration=0, it is ignored (i.e.; it's the same as not including
  216.                             a duration option).
  217.                          *  Hint: to report the total # of hits, and the hits in the last n days,
  218.                                   use  two calls, with the second containing an increment=0
  219.                                   option.
  220.                          *  Example:
  221.                              If duration = 7, and today is monday, then the number of
  222.                              hits since last Tuesday (inclusive) is displayed.
  223.  
  224.  
  225. D) Miscellaneous topics -----------
  226.  
  227.  
  228.  * Using COUNTER.RXX with SENDFILE ------------
  229.  
  230.    To augment these .CNT files via the SENDFILE facility, simply
  231.    include, as part of the args (in SENDFILE?filename&args)
  232.    a &COUNTER=file=cntfile.  Since SENDFILE just uses COUNTER.RXX
  233.    to augment the .CNT file, there is no point in specifying
  234.    additional options (however, you may wish to tinker with the SAVE_xxxx
  235.    variables in COUNTER.RXX).
  236.  
  237.    Example:  sendfile?srefiltr/ver12/srefv12i.zip&counter=file=sref12
  238.  
  239.    Note: SENDFILE will record all attempts in the .CNT file. However,
  240.          if an attempt failed (due to a prematurely closed connection),
  241.          SENDFILE will write a "failed" record that notes how
  242.          many bytes were sent.
  243.  
  244.  * Example of use as an in-line image
  245.        <IMG src="/counter.rxx?file=test1&width=5&graphic=YES">
  246.        <IMG src="/counter.rxx?file=test2&increment=0&graphic=NORMAL">
  247.  
  248.     Note the use of & as an argument seperator!
  249.  
  250. * Using COUNTER.RXX to return "fancy" counters.
  251.   To use COUNTER.RXX to return fancy counters, consisting of a string of 
  252.   graphical digits, you should use the IMGTYPE option.
  253.   For example:
  254.      <!-- INTERPRET FILE COUNTER.RXX FILE=bar1 IMGTYPE=FLAME -->
  255.   will  use the "flame" digits to display the current count.  For example,
  256.   if the count (as stored in bar1.cnt) is 12, the following would be returned:
  257.       <img src="/cntimg/FLAME/1.gif" alt="1">
  258.       <img src="/cntimg/FLAME/2,gif" alt="2">  
  259.   where "/CNTIMG" is the value of the counter_image_dir variable.
  260.   
  261.   Hint: you can find lots of "digit gif files" at  
  262.          http://www.digitmania.holowww.com.
  263.   Or, for a small sampler, check out the DIGITS.ZIP file packed with SRE-Filter 
  264.   (see the READ.ME file in DIGITS.ZIP for details).
  265.  
  266.  
  267.  * Examples of use as a server side include:
  268.    <!-- INTERPRET FILE COUNTER.RXX file=foobar -->
  269.    <!-- INTERPRET FILE COUNTER.RXX file=foobar2 silent="" -->
  270.    <!-- INTERPRET FILE COUNTER.RXX file=foobar3 min=10 max=20 inc=2 width=5
  271.                                   rollover="" ith="" -->
  272.    <!-- INTERPRET FILE COUNTER.RXX file=foobar2 nocommas="" , 1  -->
  273.    <!-- INTERPRET FILE COUNTER.RXX file=foobar  duration=10 -->
  274.  
  275.  
  276.    Note that when called as a server side include, you don't need to
  277.    enclose the values in double quotes (").  Also note that space is used as an
  278.    argument seperator.
  279.  
  280.  
  281.  * In .CNT files: blank lines, and lines starting with a semi-colon,
  282.    are ignored (they are treated as comments)
  283.  * Suppress_recent is ignored if write_users does not equal 1
  284.  * Hint: if you want some counters to retain "individual information",
  285.          and some not to, you can create 2 versions of COUNTER.RXX
  286.          (say, CNT1.RXX and CNT2.RXX); and call the appropriate one:
  287.          say; use INTERPRET FILE CNT1.RXX or INTERPRET FILE CNT2.RXX.
  288.  
  289.