spesta
Spesta 2.21a+b
Вышла Spesta 2.21a+b (качать — там же).
Список изменений:
- теперь восстанавливается error_reporting на выходе из counter (важно для тех, кто знает PHP)
- улучшенный подсчёт уников на базе cookie
- русификация графика (выключается в конфиге), возможность использовать
TTF-шрифт, оптимизация по скорости прорисовки графика (кто писал этот код?) - правки для поддержки PHP4 в некоторых ситуациях (OMG, PHP4 ещё не умер!)
- при клике на график происходит его перезагрузка
- правильно подсчитывается средняя аудитория за день
- небольшие изменения в дизайне
- на закладке поисковых роботов выводятся favicons роботов
- исправлен баг оригинальной версии, приводящий порче данных, если
в User-agent есть вертикальная линия - добавлена поисковая машина Nigma
- разрывы длинных строк в отчётах
Спасибо владельцу блога «Тут хумора.NET», который тестирует эту версию уже неделю.
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» именно в этом регистре.
Spesta 2.11a+b
Сделал новую версию системы статистики «Спеста 2», версия 2.11, файл лежит там же. В основном, это багфиксы, причём баги большей частью — наследие оригинальной системы.
Поправлено:
- поправлено отсутствие перекодировки поисковых запросов
из UTF-8 - устранено разрастание файлов статистики
из-за лишнего перевода строки - поправлено возможное некорректное определение дубликатов в файлах статистики
- исправлены
какие-то мистические глюки при работе на площадках «Мастерхоста» с PHP 5.2.5 - побеждено странное поведение при логине на площадки, где стоит PHP как CGI и suphp
- снова работает отчёт «Поисковые роботы» (был поломан моим патчем)
- в отчёте «Откуда идут» в колонке «хиты» теперь отображаются абсолютные значения, а не проценты
- исправлен подсчёт процентов во всех отчётах, раньше на этом месте считалось
что-то иное - click.php ничего не делал, это моя вина, я это поправил
- сделал сортировку в отчётах
В общем, обновляться — обязательно. Да, теперь система стоит у меня на сайте, поэтому я сразу после первого релиза увидел что надо поправить и сделал это.
Для тех, кто редко меня читает: несколько дней назад я выпустил «Спеста 2.11a+b» — сильно пропатченную систему статистики «Спеста 2» (которую сделали в Analog Group).
Система статистики «Spesta 2.10 a+b»
Недавно я узнал, что существует клон это системы — 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' -->
Ссылка для невнимательных, скачать можно отсюда:
«Спеста» — винтажная система статистики, часть II.
Ещё несколько советов по работе со «Спестой», предыдущая пачка — в первой части статьи.
Совет пять. Судя по коду, «Спеста» иногда способна пропустить
$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);Совет номер шесть. Открываем все
$s_addurl = "";Spesta — винтажная система статистики
Выкинул гугловский «Урчин» и поставил смирновскую «Спесту». Все эти
Четыре совета, если будете ставить «Спесту».
php_flag error_reporting off
php_flag register_globals onecho "<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 = $_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. Если не умеете — ну оставьте как есть.