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

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

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

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

Итак, изменения, всё что успел увидеть и поправить за час работы: Важно: данные «Спесты» и «Спесты 2» между собой несовместимы, т.е. вы потеряете предыдущую статистику при замене одной версии на другую. Второе важное замечание — в «Спесте 2» нет статистики по кликам на ссылки и IP-адресам (лично мне она не нужна, так что вставлять в код я её не буду).

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

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

Ссылка для невнимательных, скачать можно отсюда: http://bolknote.ru/files/spesta-210.zip.
20 марта 2008 12:16

roodz.livejournal.com (roodz.livejournal.com)
20 марта 2008, 12:27

Статистика по IP штука нужная - люди таким образом заходы с офисов конкурентов и интерес конкретных клиентов заценяют.

bolk (bolknote.ru)
20 марта 2008, 13:03, ответ предназначен roodz.livejournal.com:

Мне она не нужна — какие могут быть «офисы конкурентов и интерес клиентов» у меня на блоге?

skurudo (openid.yandex.ru/users/skurudo)
20 марта 2008, 14:11, ответ предназначен bolk (bolknote.ru):

PR забавно работает. Показывает 0. А ведь там и правда он должен быть, ведь у страницы статистики нет PR вообще -_-

bolk (bolknote.ru)
20 марта 2008, 14:21

Гм… да, я позабыл, что Page Rank он для страницы, а не для сайта, вот чёрт…

skurudo (openid.yandex.ru/users/skurudo)
20 марта 2008, 14:37, ответ предназначен bolk (bolknote.ru):

Warning: touch() [function.touch]: Utime failed: Operation not permitted in /home/skurudo/skurudo.ru/www/stat/includes/index.inc.php on line 124

Подскажи, пожалуйста, как лечить?

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 14:40, ответ предназначен bolk (bolknote.ru):

http://www.prchecker.info/pagerank-check-button.php - можно на что-то такое заменить, там как раз для сайта. Генерируется типа уникальная ссылка и можно ставить.

bolk (bolknote.ru)
20 марта 2008, 14:40

Поправил это, спасибо!

bolk (bolknote.ru)
20 марта 2008, 14:42

Надо поставить права на запись на папки data и reports.

Можно качать новую версию — баг с PR поправил (находится на том же месте, файл называется так же).

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 14:46, ответ предназначен bolk (bolknote.ru):

drwxrwxrwx 2 skurudo users 512 Mar 20 15:05 data
drwxrwxrwx 2 skurudo users 512 Mar 20 15:32 reports

Уже стоят вообще-то.

makoratao.livejournal.com (makoratao.livejournal.com)
20 марта 2008, 14:49

а что в этой спесте нового вообще есть?

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 14:53, ответ предназначен makoratao.livejournal.com:

Читай, друже, изменения у болка и у Аналогов:
http://www.analog-group.ru/projects/spesta2.html

bolk (bolknote.ru)
20 марта 2008, 14:54, ответ предназначен skurudo.livejournal.com:

А на файлы, которые внутри?

bolk (bolknote.ru)
20 марта 2008, 14:54, ответ предназначен makoratao.livejournal.com:

Это не новая «Спеста», это другая «Спеста».

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 15:19, ответ предназначен bolk (bolknote.ru):

drwxrwxrwx 5 skurudo users 512 Mar 20 15:21 ..
-rwxrwxrwx 1 skurudo users 82 Mar 20 14:43 .htaccess
-rwxrwxrwx 1 skurudo users 1526 Mar 20 16:06 agents.txt
-rwxrwxrwx 1 wwwserver users 25 Mar 20 16:06 count.txt
-rwxrwxrwx 1 wwwserver users 224 Mar 20 16:06 ip.txt
-rwxrwxrwx 1 skurudo users 308 Mar 20 15:42 referers.txt
-rwxrwxrwx 1 skurudo users 4466 Mar 20 16:06 requests.txt
-rwxrwxrwx 1 wwwserver users 262 Mar 20 15:30 se.txt
-rwxrwxrwx 1 wwwserver users 262 Mar 20 15:30 se10.txt
-rwxrwxrwx 1 skurudo users 0 Mar 20 14:43 spiders.txt
-rwxrwxrwx 1 skurudo users 91 Mar 20 15:30 words.txt

Тоже нормал вроде бы.

teplorod.livejournal.com (teplorod.livejournal.com)
20 марта 2008, 15:20

Очень здорово, что Вы это сделали.
Но вот статистики по "кликам" очень нехватает.
Буду очень признателен, если Вы ее все-таки прикрутите.

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 15:24, ответ предназначен bolk (bolknote.ru):

болтикова в Поисковых словах... не понимает utf8? Или это персонально у меня такое? :-)

bolk (bolknote.ru)
20 марта 2008, 15:30, ответ предназначен skurudo.livejournal.com:

Гм, так проблема с правами ушла или нет? Если нет, то попробуй вписать туда var_dump($fstat); после touch и посмотри в какой файл оно пытается писать.

А с unicode там смешно — оно его только для google делает, для остальных — нет. Надо доделать, я думаю. А это какой поисковик?

bolk (bolknote.ru)
20 марта 2008, 15:31, ответ предназначен teplorod.livejournal.com:

Хм… а зачем она, кстати? Может и сделаю, если пойму зачем она.

alick (alick.ru)
20 марта 2008, 15:33

! ..\spesta-210.zip: The archive is corrupt

Архив поломатый.

bolk (bolknote.ru)
20 марта 2008, 15:38, ответ предназначен alick (alick.ru):

Перезалил. Пашет?

bolk (bolknote.ru)
20 марта 2008, 15:39, ответ предназначен skurudo.livejournal.com:

Сейчас попробовал воткнуть туда обнаружение кодировки. Кстати, у вас модули iconv или multibyte string есть? Я выкинул оттуда «ручное» преобразование, понадеявшись, что эти модули есть у всех.

teplorod.livejournal.com (teplorod.livejournal.com)
20 марта 2008, 15:39, ответ предназначен bolk (bolknote.ru):

Статистика по кликам нужна в двух случаях:
1. Если рекламу на ресурсе продали, и нужно отследить эффективность.

2. Чтобы посмотреть, с каких страниц народ активно уходит по ссылкам.
Вот пример: http://flogiston.ru/stat/?report=l
(демо-пароль и логин стандартные для прежних версий spesta)
Для меня эта статистика полезна, т.к. я знаю, где людям не хватает контента, и они с сайта уходят.

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 15:43, ответ предназначен bolk (bolknote.ru):

Будешь смеяться, но ошибка была только с теми отчетами, которые от моего имени создались. Там выше есть список. А отчеты собственно: referers.txt, requests.txt, spiders.txt, words.txt. Удалил в пень. Оно создало заново уже от себя, в смысле от имении wwwserver'a.

bolk (bolknote.ru)
20 марта 2008, 15:44, ответ предназначен teplorod.livejournal.com:

Понятно. Возможно сделаю в скором времени, ничего не обещаю.

bolk (bolknote.ru)
20 марта 2008, 15:45, ответ предназначен skurudo.livejournal.com:

Ну и бог с ними :) Я из архива эти файлы вообще убрал :)

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 15:48, ответ предназначен bolk (bolknote.ru):

Можно на "ты". Скуруда не нежный.

Error where found in ZIP file ;-(

bolk (bolknote.ru)
20 марта 2008, 15:52, ответ предназначен skurudo.livejournal.com:

Да, только что перезалил. Не понимаю что случилось с архивом, можно качать.

Мне тут пришла мысль на тему маркировки «ты»-«вы», надо будет реализовать :) Просто забываю с кем на «ты», а с кем на «вы» :)

skurudo.livejournal.com (skurudo.livejournal.com)
20 марта 2008, 15:58, ответ предназначен bolk (bolknote.ru):

Гм, что-то, и правда, не то с архивом. Пишет о том, что архив поврежден.

bolk (bolknote.ru)
20 марта 2008, 16:02, ответ предназначен skurudo.livejournal.com:

Ещё раз скачай, сейчас всё ок. Если качаешь «Оперой», то зайди в закачки и выбери «скачать ещё раз» («restart transfer»). Оно кеширует, похоже.

teplorod.livejournal.com (teplorod.livejournal.com)
20 марта 2008, 16:08, ответ предназначен bolk (bolknote.ru):

Спасибо.

alick (alick.ru)
20 марта 2008, 16:43, ответ предназначен bolk (bolknote.ru):

Ага. Пашет.
Спасибо.

alick (alick.ru)
20 марта 2008, 16:46

Кстати, а способы установки остались точно такими же, как у Димы? Просто readme в архиве не нашлось.

alick (alick.ru)
20 марта 2008, 16:59

И как-то оно странно реагирует на файл data/sites.txt:

Notice: Undefined variable: this in /stat/index.php on line 76

bolk (bolknote.ru)
20 марта 2008, 17:06, ответ предназначен alick (alick.ru):

Способ установки я написал в своём посте.

Гм. А это какая-то ошибка, там не может быть $this.

alick (alick.ru)
20 марта 2008, 17:08, ответ предназначен bolk (bolknote.ru):

"Способ установки я написал в своём посте."
ты про это?
"Инструкция по установке: полностью удаляете «Спесту», ставите в ту же папку «Спесту 2», скрипт должен иметь возможность писать в папки data и reports."

А как быть, если спесты раньше не было?

bolk (bolknote.ru)
20 марта 2008, 17:13, ответ предназначен alick (alick.ru):

Щас допишу. Файл можно скачать заново — надеюсь, я правильно догадался что происходит в том куске кода, файл поправил.

alick (alick.ru)
20 марта 2008, 17:20, ответ предназначен bolk (bolknote.ru):

Ошибка исчезла, но ссылки он все-равно криво поставил.
Там формат файла, если не помнишь:
Название1|Урля1
Название2|Урля2
Название3|Урля3

А он генерит:
<a href='Название1|Урля1'>Название1|Урля1</a> | <a href='Название2|Урля2'>Название2|Урля2</a> | <a href='Название3|Урля3'>Название3|Урля3</a>

Т.е. забывает про разделитель.

bolk (bolknote.ru)
20 марта 2008, 17:24, ответ предназначен alick (alick.ru):

Инструкцию дописал.

Я не то что не помню, я этого не знаю, никогда этим не пользовался :) А эта фиговина, похоже, имеет свой формат. Впрочем, я уже поправил — сделал поддержку обоих форматов, можно качать заново.

alick (alick.ru)
20 марта 2008, 17:31, ответ предназначен bolk (bolknote.ru):

<a href='$site$link'><b>$name</b></a> - вот эта штука никогда не срабатывает

bolk (bolknote.ru)
20 марта 2008, 17:39, ответ предназначен alick (alick.ru):

Как нет? Только что вписал:

Bolknote|bolknote.ru
Другой сайт|bolk.exler.ru

Сработало.

alick (alick.ru)
20 марта 2008, 17:42, ответ предназначен bolk (bolknote.ru):

у меня не срабатывает проверка на strtolower($site) == $current_site

alick (alick.ru)
20 марта 2008, 17:43, ответ предназначен bolk (bolknote.ru):

т.е. у меня там всегда false

bolk (bolknote.ru)
20 марта 2008, 17:53, ответ предназначен alick (alick.ru):

давайте в аську, утомительно. 2993333

404team.org (404team.org)
20 марта 2008, 19:26, ответ предназначен bolk (bolknote.ru):

странная фигня. на локальном компе пашет, на серваке не пускает в админку.
в чем может быть прикол?

bolk (bolknote.ru)
20 марта 2008, 19:27, ответ предназначен 404team.org:

Подробнее. Что именно происходит?

404team.org (404team.org)
20 марта 2008, 19:40, ответ предназначен bolk (bolknote.ru):

просто не пускает, как при неправильном вводе пароля.

bolk (bolknote.ru)
20 марта 2008, 19:43, ответ предназначен 404team.org:

PHP установлен как модуль? Или как CGI?

404team.org (404team.org)
20 марта 2008, 19:49, ответ предназначен bolk (bolknote.ru):

как CGI.
проверил на другом хосте, где стоит как модуль - то же самое.

bolk (bolknote.ru)
20 марта 2008, 19:51, ответ предназначен 404team.org:

Попробуйте выкачать ещё раз, я сделал небольшие правки на случай, если у вас PHP в режиме CGI.

bolk (bolknote.ru)
20 марта 2008, 19:57, ответ предназначен 404team.org:

4ert, russkij otvalilsja v windows.

poprobujte posmotret' 4to u vas v $_SERVER. V file 'auth.inc.php' dobav'te persuju stroku:

echo '<pre>'; var_dump($_SERVER);

potom posmotrite, est' li u vas tam peremennyi PHP_AUTH_USER i PHP_AUTH_USER. elsi net — posmotrite chto est'. Esli 4to — zavtra v as'ke mozhno otladit'.

404team.org (404team.org)
20 марта 2008, 20:11, ответ предназначен bolk (bolknote.ru):

большое спасибо. заработало!

acerbial (coprophagous.ru)
20 марта 2008, 20:31

Украли проект!!!

no-subject (no-subject.ya.ru)
20 марта 2008, 21:13

Поставил, работает как часы. Спасибо!

cfyz.livejournal.com (cfyz.livejournal.com)
20 марта 2008, 21:51

А сколько весит архив? Перекачиваю уже 100й раз (размер всегда 22076) - все время неожиданный конец архива :/

alick (alick.ru)
20 марта 2008, 23:42

Написал в аську небольшой багрепорт.

splurov.livejournal.com (splurov.livejournal.com)
21 марта 2008, 06:44, ответ предназначен alick (alick.ru):

> у меня не срабатывает проверка на strtolower($site) == $current_site
http://php.net/setlocale в помощь

splurov.livejournal.com (splurov.livejournal.com)
21 марта 2008, 06:55, ответ предназначен alick (alick.ru):

Извиняюсь, последний комментарий не читайте, не проснулся ещё :-/

alick (alick.ru)
21 марта 2008, 08:40, ответ предназначен splurov.livejournal.com:

Угу, баг исправили и он был совсем не в том.
Доброго вам утречка :-)

bolk (bolknote.ru)
21 марта 2008, 11:06, ответ предназначен cfyz.livejournal.com:

Не понимаю что это за проблема такая, но иногда, после заливки на FTP архив оказывается битым. Перезалил.

bolk (bolknote.ru)
21 марта 2008, 11:14, ответ предназначен acerbial (coprophagous.ru):

Жди «Блоговара 2» с моими патчами ;)

no-subject (openid.yandex.ru/users/no-subject)
21 марта 2008, 14:58

Что-то странное, среди используемых браузеров нет ни одного IE.
Это только у меня такое?

bolk (bolknote.ru)
21 марта 2008, 15:02

Попробовал зайти локально MSIE, увидел: «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; WebMoney Advisor; .NET CLR 2.0.50727)»

Так что всё должно работать.

doctor-estet (kvisaz.ru)
23 марта 2008, 10:29

Для HTML страниц и WAP/WML страниц также работает способ вставки через IMG

пример
img src=http://site.ru/stats/counter.php

doctor-estet (kvisaz.ru)
23 марта 2008, 18:06

Предыдущее сообщение несколько неверно.
Работать работает, но с некоторыми ошибками (в частности неправильно показываются страницы)

teplorod.livejournal.com (teplorod.livejournal.com)
23 марта 2008, 19:03, ответ предназначен bolk (bolknote.ru):

У меня ощущение, что вот этот способ
&lt;!--#include virtual='/каталог со спестой/counter.php' --&gt;
не вполне работает.
У меня раньше на одном из сайтов SpeSta ставилась через вот такой код:
&lt;script language="javascript"&gt;
r=""+Math.random()+"&ref="+escape(document.referrer)+"&pg="+
escape(window.location.href);
document.write("&lt;img src='http://psyberlink.flogiston.ru/stat/counter.php?id="+
r+"' border=0 width=1 height=1 alt=SpeSta&gt;")&lt;/script&gt;

Можно ли вызывать систему статистики как-то похожим на это способом?

teplorod.livejournal.com (teplorod.livejournal.com)
23 марта 2008, 19:04, ответ предназначен bolk (bolknote.ru):

сорри, не знал, что html-теги совсем не отображаются.

bolk (bolknote.ru)
24 марта 2008, 13:33, ответ предназначен teplorod.livejournal.com:

Не вполне — это как? Что конктретно не работает?

teplorod.livejournal.com (teplorod.livejournal.com)
2 апреля 2008, 00:04

&lt; у тебя в комментариях не работает, а я хотел код вызова обсудить.

bolk (bolknote.ru)
2 апреля 2008, 14:03, ответ предназначен teplorod.livejournal.com:

Как это не работает? Работает «&lt;» и «<» показывает равно то, что ты написал — сочетание знаков «&lt;» и «<».

ulrith.livejournal.com (ulrith.livejournal.com)
4 декабря 2008, 15:58

Что-то у меня старая спеста с 09.10.2008 перестала правильно считать статистику. Это можно видеть вот здесь: http://eduabroad.ru/stat/?month=10.2008&l=demo&p=demo
А ведь столько лет прослужила верой-правдой (вот сколько: http://eduabroad.ru/stat/?month=06.2003). Что делать, чинить ниасилил, надо ставить новьё. В связи с этим 2 вопроса им один крик боли. Вопросы: 1) у меня тут вот на главстраницо (http://eduabroad.ru/) внизу вылезли всякие данные - как их отключить? В конфиге не нашел. 2) А можно вызвать без php и иклюдов? Способ с Яваскриптом или однопиксельной картинкой не прокатит? (<img src="http://eduabroad.ru/stat/counter.php" border=0 width=1 height=1 alt="SpeSta">) Крик боли: верните статистику кликоф!

ulrith.livejournal.com (ulrith.livejournal.com)
6 декабря 2008, 13:13

А што - тут никого нет? :-0

bolk (bolknote.ru)
6 декабря 2008, 17:25, ответ предназначен ulrith.livejournal.com:

Есть. Но мне пока не до «Спесты».

1) не увидел ничего внизу
2) по поводу других способов не знаю, посмотрите на сайте первых разработчиков Spesta2.

Статистики кликов в «Спесте2» не было никогда.

ulrith.livejournal.com (ulrith.livejournal.com)
7 декабря 2008, 16:34

Сорри за анноинг, бат...

1) Внизу выдаёццо: "IP: 89.207.222.46 (091f412984b82451808b7d64aef2eb06)
Host: eduabroad.ru
Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008111317 Ubuntu/8.04 (hardy) Firefox/3.0.4
Request: /
Referer: bolknote.ru/2008/03/20/~1631"

2) Понял.

Статистика кликов в старой спесте:
http://eduabroad.ru/stat/?report=l&l=demo&p=demo

ulrith.livejournal.com (ulrith.livejournal.com)
7 декабря 2008, 16:40

А, понял. В Спесте2 - да, не было. А жаль!

bolk (bolknote.ru)
7 декабря 2008, 19:31, ответ предназначен ulrith.livejournal.com:

Гм… ничего не понимаю. Никогда такого не видел. А место в коде, где это происходит, вы не нашли?

ulrith.livejournal.com (ulrith.livejournal.com)
7 декабря 2008, 20:37

Не-а, не нашёл. Думал так и должно быть для отладки, но отключение соотв. параметра в конфиге ничего не даёт.

bolk (bolknote.ru)
8 декабря 2008, 09:06, ответ предназначен ulrith.livejournal.com:

Будет время, попробую поковырять.

ulrith.livejournal.com (ulrith.livejournal.com)
11 декабря 2008, 15:29

Думаю эта штука вылазит потому что я прописал в конфиге свой домашний ip. Как Вам версия?

bolk (bolknote.ru)
12 декабря 2008, 13:20, ответ предназначен ulrith.livejournal.com:

Никак :) Куда вы его записали?

ulrith.livejournal.com (ulrith.livejournal.com)
13 декабря 2008, 17:56

В конфиг. Что, непонятно? :-)

bolk (bolknote.ru)
14 декабря 2008, 13:04, ответ предназначен ulrith.livejournal.com:

Не пронятно, ага.

ulrith.livejournal.com (ulrith.livejournal.com)
20 декабря 2008, 18:48

В конфиг.инк.пхп я прописал:
# База своих ip-адресов, что бы не учитывать их

$cfg['stat']['ip'] = array();

$cfg['stat']['ip'][] = "127.0.0.1";
$cfg['stat']['ip'][] = "мой айпи";


И вот поэтому оно мне все это и показывает. Вам ведь этого не видно? Или Вам тоже видно?

bolk (bolknote.ru)
20 декабря 2008, 23:59, ответ предназначен ulrith.livejournal.com:

Мне этого не видно.

ulrith.livejournal.com (ulrith.livejournal.com)
21 декабря 2008, 16:33

Вот! (Торжествуя.) Значиццо оно показывает всю эту фегню только для меня, когда я захожу со своего айпи-адреса. Фух. :-)

bolk (bolknote.ru)
21 декабря 2008, 20:22, ответ предназначен ulrith.livejournal.com:

А, ну может быть, видимо это фича :)

Stranger (artconcepts.ru)
19 января 2009, 19:16

Там в counter.inc.php есть проверка, и если ip совпадает с конфигом, то выводится эта инфа, если нет, то плюсуется статистика

bolk (bolknote.ru)
19 января 2009, 22:59, ответ предназначен Stranger (artconcepts.ru):

Значит это какая-то фича, я не в курсе, я же только патчил баги и дописал функционал, но не являюсь родителем этой версии.

Stranger (artconcepts.ru)
20 января 2009, 20:38

я щас написал себе свою статистику, но уже на базах....

и что самое обидное, на локалхосте работает так же, а на сервере уже где то в 10 раз медленнее. например 0.007 спеста а у меня 0.07. причем если спеста стабильно, то у меня может и 0.5 вылезти...

Всё из-за баз, поскольку алгоритм похожий, тормозят именно запросы. Не знаешь где про оптимизацию запросов почитать?

bolk (bolknote.ru)
21 января 2009, 09:15, ответ предназначен Stranger (artconcepts.ru):

Если MySQL, то тут: http://www.mysqlperformanceblog.com/

Stranger (artconcepts.ru)
22 января 2009, 01:50

Спасибо, почитаю ;)

foxter.livejournal.com (foxter.livejournal.com)
4 марта 2009, 12:07

Спасибо огромное. Ваша версия (дополнение, аддон) единственная которая у меня заработала!
Спасибо!

bolk (bolknote.ru)
10 марта 2009, 11:13, ответ предназначен foxter.livejournal.com:

Ну, от совершенства она далека, а допиливать уже не хочется :)

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)