6 заметок с тегом

spesta

Spesta 2.21a+b

Spesta2 (0.30КиБ)

Вышла Spesta 2.21a+b (качать — там же).

Список изменений:

  • теперь восстанавливается error_reporting на выходе из counter (важно для тех, кто знает PHP)
  • улучшенный подсчёт уников на базе cookie
  • русификация графика (выключается в конфиге), возможность использовать TTF-шрифт, оптимизация по скорости прорисовки графика (кто писал этот код?)
  • правки для поддержки PHP4 в некоторых ситуациях (OMG, PHP4 ещё не умер!)
  • при клике на график происходит его перезагрузка
  • правильно подсчитывается средняя аудитория за день
  • небольшие изменения в дизайне
  • на закладке поисковых роботов выводятся favicons роботов
  • исправлен баг оригинальной версии, приводящий порче данных, если в User-agent есть вертикальная линия
  • добавлена поисковая машина Nigma
  • разрывы длинных строк в отчётах
    Спасибо владельцу блога «Тут хумора.NET», который тестирует эту версию уже неделю.
2008   spesta

Spesta 2.12 a+b

Обновление (файл называется так же) системы стастистики «Spesta 2 a+b». С предыдщего апдейта изменилось следующее:

  • сортировка и подсчёт процентов о отчёте переделаны, теперь они работают более адекватно (сортируют и считают статистику целиком)
  • собственные настройки (например, пароль) можно вынести в файл config-personal.inc.php, формат такой же как в config.inc.php. Т. е. при заливке дистрибутива ваш пароль на админку перезаписан не будет
  • внутри отчётов, в фильтрах можно использовать расширенную грамматику, об этом ниже
    Кто не в курсе, что это за система, прочитайте у меня на сайте соответствующую статью.

Теперь о расширенной граматике. Включается она только тогда, когда в фильтре используется звёздочка («*»). «mozilla*» означает «начинается с mozilla» (регистр значения не играет), «mozilla*windows*» — строка содержит сначала «mozilla», потом «windows». Т. е. «*» — это «любые символы».

Если нужно совпадение и чувствительность к регистру, то можно искать так: «*MSIE*!» — найдёт только строки, где содержится «MSIE» именно в этом регистре.

Если нужно инвертирование поиска, то можно писать так: «!*MSIE*» — найдёт строки, в которых не содержится «MSIE» в любом регистре, «!*MSIE*!» — найдёт строки, где не содержится «MSIE» именно в этом регистре.

2008   spesta

Spesta 2.11a+b

«Спеста 2.11a+b» (0.30КиБ)

Сделал новую версию системы статистики «Спеста 2», версия 2.11, файл лежит там же. В основном, это багфиксы, причём баги большей частью — наследие оригинальной системы.

Поправлено:

  • поправлено отсутствие перекодировки поисковых запросов из UTF-8
  • устранено разрастание файлов статистики из-за лишнего перевода строки
  • поправлено возможное некорректное определение дубликатов в файлах статистики
  • исправлены какие-то мистические глюки при работе на площадках «Мастерхоста» с PHP 5.2.5
  • побеждено странное поведение при логине на площадки, где стоит PHP как CGI и suphp
  • снова работает отчёт «Поисковые роботы» (был поломан моим патчем)
  • в отчёте «Откуда идут» в колонке «хиты» теперь отображаются абсолютные значения, а не проценты
  • исправлен подсчёт процентов во всех отчётах, раньше на этом месте считалось что-то иное
  • click.php ничего не делал, это моя вина, я это поправил
  • сделал сортировку в отчётах
    В общем, обновляться — обязательно. Да, теперь система стоит у меня на сайте, поэтому я сразу после первого релиза увидел что надо поправить и сделал это.

Для тех, кто редко меня читает: несколько дней назад я выпустил «Спеста 2.11a+b» — сильно пропатченную систему статистики «Спеста 2» (которую сделали в Analog Group).

2008   spesta

Система статистики «Spesta 2.10 a+b»

Спеста (0.30КиБ)

Какое-то время назад я патчил (два раза) систему статистики «Спеста» Дмитрия Смирнова, правил дыры и ошибки. Сама система мне нравится — простая, понятная, после патчей даже работает неплохо. Но при работе генерирует кучу warnings и notices, что захламляет мой лог ошибок и настраивать её не слишком-то приятно.

Недавно я узнал, что существует клон это системы — Spesta 2, который написали в Analog Group. Приятно, что код написан с форматированием и почти не генерирует warnings и notices, но общее ощущение — что авторы двигались в правильном направлении, но заплутали по дороге.

Я было думал выпустить серию патчей, как это было со «Спестой», но патчей оказалось слишком много. В общем, выложил пропатченную версию у себя. Кому надо — забирайте. Оригинальная версия была 2.00a, эта называется 2.10a+b, потому что на «бету» она не тянет, а пачти обозначить как-то надо.

Итак, изменения, всё что успел увидеть и поправить за час работы:

  • нарисован favicon и дорисован логотип
  • выкинута реализация функции in_array (авторы плохо знают язык?)
  • работа с файлами заменена на более безопасную — с flock и append. Там где можно, используются file_get_contents и file_put_contents (это означает, что раньше эта система «теряла» часть данных)
  • патч для более точного подсчёта уников (с использованием данных браузера)
  • вычищены .htaccess от лишнего мусора
  • поправлены регулярные выражения в коде
  • переписан странный поиск с stristr
  • на странице хитов теперь выводятся тИЦ и Page Rank
  • сделан парольный вход, задаётся в конфиге (по умолчанию, логин — admin, пароль — test)
  • для совместимости со «Спестой» сделан файл click.php
  • исправлены ситуации, в которых генерировались notices и warnings (в основном — на пустых данных)
  • исправлена ошибка в работе с файлом sites.txt
  • ряд мелких улучшений кода, которые лень описывать
    Важно: данные «Спесты» и «Спесты 2» между собой несовместимы, т. е. вы потеряете предыдущую статистику при замене одной версии на другую. Второе важное замечание — в «Спесте 2» нет статистики по кликам на ссылки и IP-адресам (лично мне она не нужна, так что вставлять в код я её не буду).

Инструкция по установке: распаковываете в нужную папку «Спесту 2», скрипт должен иметь возможность писать в папки data и reports. Если у вас была оригинальная «Спеста», удалите её, поверх ставить нельзя. Далее, вы должны подключить «Спесту» на каждой странице вашего сайта. Для PHP это будет выглядеть так: <?include ’каталог со спестой/counter.php’?>;

для HTML страниц можно попробовать сделать следующее: <!#include virtual=’/каталог со спестой/counter.php’ >

Ссылка для невнимательных, скачать можно отсюда: /files/spesta-210.zip.

2008   spesta

«Спеста» — винтажная система статистики, часть II.

Ещё несколько советов по работе со «Спестой», предыдущая пачка — в первой части статьи.

Совет пять. Судя по коду, «Спеста» иногда способна пропустить какую-то часть хитов (кстати, у «Spesta 2» тот же недостаток). Для слабопосещаемого сайта это не слишком важно, для сильнонагруженных станет серьёзной проблемой. Для того, чтобы поправить ситуацию, открываем файл counter.php, ищем строки, содержащие «SP_fr ($COUNT_FILE)» и «SP_fw ($COUNT_FILE, $content)». Заменяем их на следующие куски кода (первую найденную строку — на первый, вторую — на второй):

$fp = fopen($COUNT_FILE, 'a+');
flock($fp, LOCK_EX);
fseek($fp, 0);
$conts = fread($fp, filesize($COUNT_FILE));
ftruncate($fp, 0);
fseek($fp, 0);
fwrite($fp, $content);
fclose($fp);

Совет номер шесть. Открываем все PHP-файлы последовательно и в каждый, в начало PHP-кода ставим нижеприведённый кусок. Файл mailto.php удаляем.

$s_addurl = "";
2007   spesta

Spesta — винтажная система статистики

Выкинул гугловский «Урчин» и поставил смирновскую «Спесту». Все эти Flash-графики у «Гугла» — это очень красиво, но мне не нравится смотреть по нескольку минут на процесс загрузки, а время дорого. Тем более, что большинство инструментов, которые предоставляет эта статистика, мне не нужны, я туда даже не заглядываю.

Четыре совета, если будете ставить «Спесту».

Во-первых, Дима писал её в бородатые времена, так что для работы на нормальном хостинге она требует влюченного register_globals и выключенного error_reporting. В Apache, в файле .htaccess это делается так:

php_flag error_reporting off
php_flag register_globals on

Во-вторых, откройте файл index.php, найдите строку 162 (там выводится значение ТИЦ, в этой строке должно быть слово cycounter), после этой строки добавьте:

echo "<b>Google</b>:<br /><br />
<script language='JavaScript'
src='http://www.mipagerank.com/mipagerank.php/$hosturl?d=2'></script>";

Теперь вы сможете видеть ещё и PageRank вашего сайта.

Совет номер три. Откройте counter.php, найдите строку 150, там определяется IP человека, который к вам зашёл. Определяется несколько… некорректно, да и считает всех с одного IP за одного человека. Чтобы хоть как-то поправить это положение, впишите туда следующее, вместо кода определения IP-адреса:

$ip = $_SERVER['REMOTE_ADDR'];
$fields = array
(
    'HTTP_X_FORWARDED_FOR', 'CLIENT_IP', 'HTTP_FROM', 'HTTP_CLIENT_IP', 'HTTP_CLIENTIP',
    'HTTP_CLIENT', 'HTTP_X_FORWARDED', 'HTTP_X_DELEGATE_REMOTE_HOST', 'HTTP_SP_HOST',
);

foreach ($fields as $field)
if (isset($_ENV[$field]))
{
    $ip .= ' '.$_ENV[$field];
    break;
}

$fields = array
(
        'HTTP_USER_AGENT', 'HTTP_ACCEPT_LANGUAGE', 'HTTP_ACCEPT_CHARSET',
        'HTTP_ACCEPT_ENCODING', 'HTTP_TE', 'HTTP_UA_CPU', 'HTTP_UA_OS', 'HTTP_UA_COLOR',
        'HTTP_UA_PIXELS', 'HTTP_UA_VOICE',
);

$uniq = '';
foreach ($fields as $field)
if (isset($_SERVER[$field])) $uniq .= '~'.$_SERVER[$field];

$ip .= ' ('.md5($uniq).')';

Четвёртый совет — поставьте flock. Нет, не настройку в конфигурационном файле, она ни на что не влияет. Если умеете — поставьте вызов flock после каждого fopen. Если не умеете — ну оставьте как есть.

2007   spesta