Установка счетчика системы

Установка счетчика системы на страницах сайта необходима для сбора статистики о трафике на сайте. Код счетчика устанавливается в тело html-документа, т.е. между тегами <boby> (<boby>код счетчика</boby>). Рекомендуется устанавливать счетчик как можно ближе к началу страницы.
! После установки счетчика системы, на страницах со счетчиком должен быть виден рисунок счетчика.

При использовании анализа кликов счетчик на страницы устанавливается по следующей инструкции.

Страницы сайта могут быть нескольких типов:
1. Страницы сайта на html (http://domain.com/index.html?trader=ID)
Для вставки счетчика системы в страницы на html используется SSI (Server-Side Includes). В html-код страницы вставляется код следующего вида:
<!--#include virtual ="/cgi-bin/cacount.cgi?cafn=loadi" -->


Назначение группы для трафика анализируемого на данном сайте или странице (GROUP - название группы):
<!--#include virtual ="/cgi-bin/cacount.cgi?cafn=loadi&grp=GROUP" -->


При назначении путей считаем что страница с счетчиком находиться по адресу http://mydomain.com/index.html, а система СА установлена в http://mydomain.com/cgi-bin/.
После установки счетчика системы, на страницах со счетчиком должен быть виден рисунок.
Если после установки счетчика рисунок не виден, возможны следующие варианты:
- На месте счетчика отображается надпись [an error occurred while processing this directive]. Это означает, что SSI работает, но в коде содержится ошибка. Например, добавлены лишние пробелы или указан не правильный путь к cacount.cgi.
- Ничего не отображается. Следует посмотреть исходный код документа, если в нем видна строка <!--#include virtual ="/cgi-bin/cacount.cgi?cafn=loadi" --> - это значит, что веб-сервер не поддерживает SSI или SSI не работает в файлах имеющих расширение html (htm). Часто SSI не поддерживается в файлах с расширением html (htm), т.к. для этого используются файлы с расширениями: shtml, shtm. Чтобы заставить работать SSI в html-файлах, проделаем следующие действия: в корне сайта создаем текстовый файл с именем .htaccess (без расширения и с точкой вначале) или редактируем существующий, если он уже имеется. Добавляем в него строку "AddHandler server-parsed .html" ("AddOutputFilter INCLUDES .html").
Если после этого SSI по-прежнему не заработает, обратитесь в службу технической поддержки хостинга.

2. Страницы сайта на PHP (http://domain.com/main.php?trader=ID)
Для вставки счетчика системы в страницы на PHP, код php-файла выводящего html (http://domain.com/main.php->main.php) должен быть открытым, т.е. php-файл не должен быть закодирован (Zend). Необходимо отредактировать php-файл, найти место в коде, где на экран выводится html страницы. Далее между тегами <boby> необходимо вставить в него php-код, приведенный ниже (заменив путь к cacount.cgi на свой).

<?php
virtual("/cacount.cgi?cafn=load");
?>

Назначение группы для трафика анализируемого на данном сайте или странице (GROUP - название группы):
<?php
virtual("/cacount.cgi?cafn=load&grp=GROUP");
?>

Код счетчика с использованием команды system() (на некоторых серверах этот способ может работать некорректно):
<?php
 if( isset($HTTP_SERVER_VARS) ) {  $SERVER_VARS=$HTTP_SERVER_VARS; }  
 if( isset($_SERVER) ) {  $SERVER_VARS=$_SERVER; }  
 foreach ($SERVER_VARS as $k => $v) {  
   if( strstr($k,"HTTP_") || strstr($k,"REMOTE_") || strstr($k,"QUERY_") ||   
       strstr($k,"REQUEST_") || strstr($k,"SERVER_") || strstr($k,"GEOIP_") ) {     
     putenv("$k=$v");
   }
 }
 system("./cacount.cgi load");
?>
Назначение группы для трафика на данном сайте или странице (GROUP - название группы):
<?php
 if( isset($HTTP_SERVER_VARS) ) {  $SERVER_VARS=$HTTP_SERVER_VARS; }  
 if( isset($_SERVER) ) {  $SERVER_VARS=$_SERVER; }  
 foreach ($SERVER_VARS as $k => $v) {  
   if( strstr($k,"HTTP_") || strstr($k,"REMOTE_") || strstr($k,"QUERY_") ||   
       strstr($k,"REQUEST_") || strstr($k,"SERVER_") || strstr($k,"GEOIP_") ) {     
     putenv("$k=$v");
   }
 }
 system("./cacount.cgi load GROUP");
?>

Если после вставки кода счетчика рисунок не виден, возможны следующие варианты:
- необходимо проверить путь на диске к файлу cacount.cgi. Создайте файл (test.php) с кодом счетчика, приведенным выше, и положите его рядом с другими php файлами. Изменяйте путь в команде system, пока при запуске из веб не буден виден рисунок счетчика. После, вставьте исправленный код в свой php-файл.
- если путь правильный, но скрипт cacount.cgi не работает, то возможно на сервере в PHP запрещен запуск команды system(). Обратитесь в службу технической поддержки хостинга для решения этой проблемы.


3. Страницы сайта на Perl (http://domain.com/cgi-bin/main.cgi?trader=ID)

Для вставки счетчика системы надо отредактировать cgi-файл (pl), найти место в коде, где на экран выводится html страницы. Вставьте в Perl-код скрипта вызов счетчика с помощью команды system(), приведенной ниже (заменив при этом путь к cacount.cgi на свой).

system("./cacount.cgi load"); # вызов скрипта счетчика

Назначение группы для трафика на данном сайте или странице (GROUP - название группы):
system("./cacount.cgi load GROUP"); # вызов скрипта счетчика

Если после вставки кода счетчика рисунок не виден, возможны следующие варианты:
- необходимо проверить путь на диске к файлу cacount.cgi. Создайте файл (test.cgi) с кодом, приведенным ниже, и положите его рядом с другими cgi файлами и назначьте права 755. Изменяйте путь в команде system, пока при запуске из веб не буден виден рисунок счетчика. После отладки, вставьте исправленный код в нужный cgi-файл.
- если на месте счетчика в html-коде виден вызов system(…) - это значит вы вставили код вызова скрипта счетчика на Perl в выводимый html. Этого не правильно, надо вставлять вызов скрипта счетчика в Perl-код, а не в текст, выводимый на экран.
- если путь правильный, но скрипт cacount.cgi не работает, то возможно на сервере в Perl запрещен запуск команды system(). Обратитесь в службу технической поддержки хостинга для решения этой проблемы.

Содержание test.cgi:
#!/usr/bin/perl
print "Content-type: text/html\n\n"; # заголовок
system("./cacount.cgi load"); # вызов скрипта счетчика